小程序录音及其动画

2023-11-18

基础功能可以这样写,挺简单的~

const recorderManager = wx.getRecorderManager()
const innerAudioContext = wx.createInnerAudioContext()

Page({
  data: {
    intervalId:0,
    recording:false,
    recordtime:0,
    filePath:"",
    proc:0
  },
  onLoad: function (options) {
    recorderManager.onStart(() => {
      this.setData({ recording: true })
    })
    recorderManager.onStop((res) => {
      this.cancelRecord()
      this.setData({ 
        recording: false ,
        filePath: res.tempFilePath,
      })
    })
    recorderManager.onFrameRecorded((res) => {
      const { frameBuffer } = res
      console.log('frameBuffer.byteLength', frameBuffer.byteLength)
    })
    this.fetch();
  },
  startRecord: function () {
    recorderManager.start(this.data.options)
    this.setData({ 
      recordtime: 0 ,
      filePath: ""
    })
    this.data.intervalId = setInterval(()=>{
      var recordtime = this.data.recordtime + 50
      this.setData({ 
        recordtime: recordtime ,
        proc: recordtime / this.data.options.duration
      })
    }, 50);
    console.log(this.data.intervalId)
  },
  cancelRecord: function () {
    recorderManager.stop()
    if (this.data.intervalId > 0){
      clearInterval(this.data.intervalId)
      this.data.intervalId = 0
    }
  },
  playVoice:function(){
    innerAudioContext.src = this.data.url.length > 0 ? this.data.url : this.data.filePath
    innerAudioContext.play()
  }
})

比较难画的是圆形进度条,这里也分享下思路:

  • 先画一个半圆环A(eg:黄色)
  • 再画一个半圆环B(eg:背景色)
  • 按进度旋转第二个半圆环B
  • 进度过一半的时候,反转第二个半圆环B的颜色(eg:背景色->黄色)

细节是这样的:

把圆环一半设置为透明

background-image: linear-gradient(to left, transparent 50%, #F4F4F4 0);

旋转 && 50%变色

transform:rotate({{proc<0.5?proc:(proc+0.5)}}turn); background-color: {{proc<0.5?'#F4F4F4;':'#FCDF6A'}}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

小程序录音及其动画 的相关文章

  • C++:stat函数

    函数原型 int stat const char pathname struct stat statbuf 函数作用 用于获取文件状态信息 使用函数需要包含头文件 include
  • Docker安装Nginx(配置SSL证书)

    1 下载Nginx镜像 拉取镜像 docker pull nginx 查询镜像 docker images 2 创建配置文件 创建挂载目录 mkdir p home nginx conf d mkdir p home nginx confi

随机推荐

  • 用 Pytest+Allure 生成漂亮的 HTML 图形化测试报告

    本篇文章将介绍如何使用开源的测试报告生成框架 Allure 生成规范 格式统一 美观的测试报告 通过这篇文章的介绍 你将能够 将 Allure 与 Pytest 测试框架相结合 如何定制化测试报告内容 执行测试之后 生成 Allure 格式
  • Springboot+Vue前后端分离项目打包并部署到服务器

    一 打包前端项目 打开前端项目 使用npm run build命令进行打包 打包成功后结果如下 这时 该项目目录下有一个build目录是打包好的文件 将该目录下的所有文件复制到后端Springboot项目的resources static目
  • java微服务架构内存,微服务架构下的子服务器内存波动

    springcloud架构下的服务器jvm内存波动是正常的 服务器内存波动 本人验证了eureka 和 nacos 两种注册中心 nacos 最低内存占用为 60M 最高内存占用为 450M 波动值为400M左右 eureka 最低内存占用
  • Layer Norm

    参考ConvNeXt中的Layer Normalization LN 海斌的文章 知乎 https zhuanlan zhihu com p 481901798 Layer Norm本来是一个样本norm自己 如图所示 也就是说 在 C H
  • tomcat应用服务器大量接口超时,内存及CPU飙升100%以上解决流程

    问题现象 最近我们相关站点的docker环境出现一个奇怪的现象 大量接口超时 普遍都是几千毫秒 问题解决 经过排查 已经确定不是被调用服务端的问题 于是开始排查我们自己的环境 发现docker容器的内存 从启动开始内存不断上升 然后找到我们
  • 【学习打卡】Pandas第六章:缺失数据

    Pandas学习 第六章 缺失数据 一 缺失观测及其类型 1 了解缺失信息 a isna和notna方法 判断缺失值 b 查看缺失值的所在行 c 挑出所有非缺失值列 2 三种缺失符号 二 缺失数据的运算与分组 1 加号与乘号规则 2 gro
  • 用Anaconda安装TensorFlow

    一说起现在比较火的机器学习 深度学习之类的 不得不说的一定有谷歌的TensorFlow框架 关于TensorFlow我就不多说了 因为我对这个东西也不太了解 这才是第一次开始学习 那么今天要说的是就是在Windows平台上安装TensorF
  • 利用MVC做一个 常见的管理系统

    登陆的部分 gt 数据库 gt 表 admin id name pass regtime 表与类的映射关系 基于面向对象 转换成对象的操作 gt 登陆页面
  • Java课题笔记~ JSP开发模型

    MVC 1 JSP演化历史 1 早期只有servlet 只能使用response输出标签数据 非常麻烦 2 后来有了jsp 简化了Servlet的开发 如果过度使用jsp 在jsp中即写大量的java代码 有写html表 造成难于维护 难于
  • 积分路径上有奇点的积分_复变函数与积分变换 简明笔记(七):留数定理

    拖更了两年 最近终于开始补齐之前这篇稿子的内容 之后可能会在暑假期间慢慢写好 保证质量比保证完成速度更重要 留数理论是复积分和复级数理论结合的产物 在前面详细讨论过洛朗级数和柯西积分定理之后 导出留数理论是很正常的事情 系统建立留数理论 实
  • yaffs2文件系统坏块发生记(读写代码及注释)

    yaffs2文件系统坏块产生记 对于yaffs2文件系统来说 坏块管理无疑是最关键的问题 下面就Yaffs2文件系统读 写操作来分析坏块产生记 写操作 写chunk操作 参数1 yaffs dev结构 全局 参数2 要写的2048字节数据
  • pyecharts的各个系列配置项设置示例——个人整理与分享

    由于在使用pyecharts时我们有很多对图表的配置项设置需要用到全局配置项和系列配置项 因此在对pyecharts的图表进行介绍之前先进行个人在pyecharts官网对系列配置项学习的整理 因为个人在官网对代码的查看没有特别舒服 其中包含
  • Nuxt3如何使用Tailwindcss?

    最近在Nuxt3项目中使用tailwindcss碰到一些问题 经研究后把问题解决 为避免此类问题特此把解决过程写下来做个记录 Nuxt3官网 tailwindcss官网 创建Nuxt3应用 须确保node js版本大于16 11 Nuxt3
  • 搜索技巧

    搜索技巧 一 完全匹配搜索 里面的就是完全搜索 例如 胡文迪 就会找完全匹配胡文迪三个字的相关结果 如果没有检索到 二 搜索范围限定在标题 intitle xx allintitle xx xx 在查询词前加上intitle xx 如果是多
  • 步进电机 - 构造与动作原理(二)

    第2章 构造与动作原理 2 1 构造 1 基本构造与动作原理 通过简易的示图讲解步进电动机的基本构造和动作原理 基本构造和动作原理 下图为步进电动机简易示图 对线圈L1进行通电时 L1会被磁化 中间部分的磁铁被LI吸引 并于平衡后停止 对线
  • 解决IntelliJ IDEA 项目结构旁边出现 0%classes,0% lines covered

    解决IntelliJ IDEA 项目结构旁边出现 0 classes 0 lines covered 官方文档解答 两种方法 解决IntelliJ IDEA 项目结构旁边出现 0 class 0 lines covered 官方文档解答 F
  • vector 查找/查找和对比结构体元素值

    原地转 http www cplusplus com reference algorithm find if include
  • SP706_MCU监控芯片

    SP706 MCU监控芯片 说明 SP706R S T系列是微处理器 P 监控电路系列 集成了离散解决方案的无数组件 监控 P和数字系统中的电源和电池 SP706R S T系列的功能包括看门狗定时器 P复置 电源故障比较器和手动重置输入 S
  • ELK 性能优化实践

    点击上方蓝色 方志朋 选择 设为星标 回复 666 获取独家整理的学习资料 一 背景介绍 近一年内对公司的 ELK 日志系统做过性能优化 也对 SkyWalking 使用的 ES 存储进行过性能优化 在此做一些总结 本篇主要是讲 ES 在
  • 小程序录音及其动画

    基础功能可以这样写 挺简单的 const recorderManager wx getRecorderManager const innerAudioContext wx createInnerAudioContext Page data