微信小程序实现录音及本地录音播放功能

项目需求

在做一个项目时需要有这样的功能:用户可以通过微信小程序录音且录音完成后可以播放自己的录音。

项目实施

首先,在前端界面上绘制几个按钮,分别添加上点击事件。

index.wxml

<!--index.wxml-->
<view class="container">
  <button type="primary" bindtap="start">开始录音</button>
  <button type="primary" bindtap="suspend">录音暂停</button>
  <button type="primary" bindtap="continue">继续录音</button>
  <button type="primary" bindtap="stop">录音停止</button>
  <button type="primary" bindtap="play">播放录音</button>
</view>

index.wxss

/**index.wxss**/
button {
  margin: 20rpx;
  font-size: 30rpx;
}

效果如下图所示:

在这里插入图片描述

然后,在js文件里完成页面需要的点击事件。注意,这里的录音管理器是RecorderManager。

  onLoad: function (options) {
    var that = this;
    //获取全局唯一的录音管理器 RecorderManager实例
    that.recorderManager = wx.getRecorderManager()
    that.recorderManager.onStop((res) => {
      that.setData({
        tempFilePath: res.tempFilePath // 文件临时路径
      })
      console.log('获取到文件:' + that.data.tempFilePath)
    })
    this.recorderManager.onError((res) => {
      console.log('录音失败了!')
      //console.log(res)
    })
  },

开始录音的事件可以设置一些参数,如:采样率、录音通道数、音频格式等。

  //开始录音
  start: function () {
    this.recorderManager.start({
      duration: 60000,
      sampleRate: 16000, //采样率,有效值 8000/16000/44100
      numberOfChannels: 1, //录音通道数,有效值 1/2
      encodeBitRate: 96000, //编码码率
      format: 'mp3', //音频格式,有效值 aac/mp3
      frameSize: 50, //指定帧大小
      audioSource: 'auto' //指定录音的音频输入源,可通过 wx.getAvailableAudioSources() 获取
    })
  },

录音暂停、继续录音、录音停止事件只需要调用微信小程序的API即可。

  //录音暂停
  suspend: function () {
    this.recorderManager.pause()
  },
  //继续录音
  continue: function () {
    this.recorderManager.resume()
  },
  //录音停止
  stop: function () {
    this.recorderManager.stop()
  },

播放录音事件需要先获取 innerAudioContext 实例,然后设置音频文件的路径,调用 onPlay() 方法即可播放。

  //播放录音
  play: function () {
    // 获取innerAudioContext实例
    const innerAudioContext = wx.createInnerAudioContext()
    // 是否自动播放
    innerAudioContext.autoplay = true
    // 设置音频文件的路径
    innerAudioContext.src = this.data.tempFilePath;
    // 播放音频文件
    innerAudioContext.onPlay(() => {
      console.log('开始播放')
    });
    // 监听音频播放错误事件
    innerAudioContext.onError((res) => {
      console.log(res.errMsg)
      console.log(res.errCode)
    })
  }
})

注意事项

之前播放音频使用的微信小程序接口是 wx.playVoice(Object object) ,但是从基础库 1.6.0 开始,该接口停止维护,所以我们使用 wx.createInnerAudioContext 代替。

在这里插入图片描述

完整项目代码获取:》》传送门《《

  • 3
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序源码(含截图)录音微信小程序

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戴翔的技术博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值