小程序中提供了两种录音的API,wx.startRecord和wx.getRecorderManager(),前一个现在微信团队已经不再维护,所以在这里写一下新的录音管理,比之前要强大

1.小程序录音管理介绍 wx.getRecorderManager()

    基础库 1.6.0 开始支持,低版本需做兼容处理,获取全局唯一的录音管理器 recorderManager。

2.小程序录音管理代码

// 录音管理
let record = function (recorderManager) {this.recorderManager = recorderManagerthis.recordStart()
}
record.prototype = {// 开始录音start: function (startObj) {this.recorderManager.start(startObj)},//录音开始事件recordStart: function () {this.recorderManager.onStart(() => {console.log(this.recorderManager, 'this.recorderManager')})}
}

3.Page onLoad配置

  //录音管理,new 出 第二阶段的实例recorderManager = wx.getRecorderManager()that.newRecord = new record(recorderManager)that.newRecord.recorderManager.onStop((res) => {console.log(res, '获取录制完的链接')})//播放录音innerAudioContext = wx.createInnerAudioContext()innerAudioContext.onEnded(() => {console.log("音频自然播放结束")})

4.现在开始录音

    startRecord() {let that = this,startObj = {duration: 60000,sampleRate: 44100,numberOfChannels: 1,encodeBitRate: 192000,format: 'mp3',frameSize: 50}//录音开始that.newRecord.start(startObj)// 录音计时器recordTimeInterval = setInterval(function () {}, 1000)},

5.停止录音

  stopRecord() {clearInterval(recordTimeInterval);//停止录音事件this.newRecord.recorderManager.stop()}

6.播放录音

          // 播放录音playVoice(e) {let that = thislet srcPath = e.currentTarget.dataset.temppath, // 点击当前传递的播放链接duration = e.currentTarget.dataset.duration, // 录音时间index = e.currentTarget.dataset.index // 索引checkArr[index] = srcPath   //用于页面判断播放一个,另一个暂停// 播放innerAudioContext.obeyMuteSwitch = falseinnerAudioContext.src = srcPathinnerAudioContext.play()// 时间减少器playTimeInterval = setInterval(() => {let playTime = that.data.playTime += 1}, 1000)}

7.停止播放

        // 停止播放stopVoice(forIndex, e) {let index;e !== undefined ? index = e.currentTarget.dataset.index : index = forIndexclearInterval(playTimeInterval)checkArr[index] = undefinedinnerAudioContext.stop()}

8.只能播放一个的代码

          // 只能播放一个onePlayFor(tempFilePath, src) {tempFilePath.forEach((el, i) => {if (el.tempFilePath !== src) {this.stopVoice(i)}})}

效果图

录音与停止录音使用小程序bind:touchstart='startRecord' bind:touchend='stopRecord' 事件

小程序wx.getRecorderManager()录音管理相关推荐

  1. 微信小程序—wx.getRecorderManager(录音管理)

    我们实现一下微信小程序的录音功能, 这是之前的官方文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/media-record.html 注意:在1.6. ...

  2. 微信小程序+Django实现录音并在服务器上保存在指定文件夹

    最近在做一个django后台的小程序开发,要用到小程序的录音功能,并且要把MP3文件保存在服务器上,今天就记录一下.推荐使用wx.getRecorderManager()方法,因为wx.stopRec ...

  3. 微信小程序|使用小程序制作一个时间管理小工具

    适时而学,适时而息,张弛有度的生活态度才能让我们走得更远.此文使用小程序制作一个日程管理小工具,将时间进行分解以实现有效管理. 开发步骤 一.创建小程序 二.功能实现 2.1.首页 2.2.记录页 3 ...

  4. 微信小程序之停止录音

    今日继续在第二大学远程实习,上次分享了微信小程序的录音,录音有开始也肯定有停止,分享一下停止录音的实现. 在我们实际应用开发中可能还会遇到小程序视频.录音.直播冲突的情况,或者录音过程中来了电话被中断 ...

  5. 微信小程序-wx.createInnerAudioContext的方法执行多次问题

    微信小程序-wx.createInnerAudioContext的方法执行多次问题 在项目中用wx.createInnerAudioContext做语音播放这一块,测试的时候发现第一次播放的时候onP ...

  6. ***小程序wx.getUserInfo不能弹出授权窗口后的解决方案

    ***小程序wx.getUserInfo不能弹出授权窗口后的解决方案 参考文章: (1)***小程序wx.getUserInfo不能弹出授权窗口后的解决方案 (2)https://www.cnblog ...

  7. 微信小程序服务器开小差了,微信小程序wx.request请求封装

    微信小程序 wx.request RequestTask wx.request(Object object)发起 HTTPS 网络请求. 示例代码 wx.request({ url: 'test.ph ...

  8. imagepreview使用案例_微信小程序wx.previewImage预览图片实例详解

    一.小知识 二.例子 1.wxml 2.wxss .container { box-sizing:border-box; padding:20px; } .previewimg{ float:left ...

  9. 小程序wx.uploadFile 显示errMsg: uploadFile:fail Error: Parse Error

    今天写小程序上传,遇到一个奇葩奇葩问题. 小程序端图片也传到后端了,后端也处理了,就是wx.uploadFile这个API就是走不到sucess回调里面.百思不得其解. 总是走到fail回调里面报错: ...

最新文章

  1. 推荐几个微信Markdown排版工具
  2. 大型分布式网站架构技术总结
  3. Python获取list中指定元素的索引
  4. Python协同过滤推荐算法(Collaborative Filtering)1.概念和思想以及大致步骤
  5. Linux Shell常用技巧(八)
  6. java 使用jasper_使用Jasper Reports以Java创建报告
  7. 使用 function 构造函数创建组件和使用 class 关键字创建组件
  8. gitlab修改用户密码_CRM用户模块(用户密码修改)
  9. npm使用国内镜像加速的几种方法
  10. 屏幕阅读器安全吗_如何为屏幕阅读器设计网站布局
  11. 慎用javascript:void(0) 【转】
  12. pandas 调整列的顺序
  13. Quartz配置信息
  14. 10_clickhouse,SummingMergeTree,AggregatingMergeTree(基于表,物化视图的使用)
  15. excel多表数据自动关联
  16. Leo个人MSN简明使用手册
  17. linux脚本年龄计算,js+html实现周岁年龄计算器
  18. 【风马一族_php】常用的语句
  19. 三款骨传导耳机性价比推荐-2023年最受欢迎的骨传导牌子
  20. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java天气预报系统97z40

热门文章

  1. GotoAndPlay 图论
  2. ruby Enumerator::lazy
  3. 《校园封神榜》个人工作总结——第十天
  4. pat04-树4. Root of AVL Tree (25)
  5. maven 下载源码eclipse的配置
  6. kerberos安全认证
  7. 【C】define宏展开 typedef类型重命名
  8. 【体系结构】Oracle段区块的个人理解
  9. 关于vue的钩子函数+生命周期
  10. redis主从配置+哨兵模式