微信小程序开发实战(27):录音

通过wx.startRecord和wx.stopRecord方法,可以录制和停止录制音频。如果成功录制音频,会将音频存在临时文件中,并返回临时音频文件名,以便后续处理。

与大多数API一样,这两个方法都可以传入对象类型参数,对于这两个方法来说,只有3个事件属性:success、fail和complete。含义与其他方法同名属性类似。

下面的布局代码在窗口上放置两种按钮:“开始录音”和“停止录音”。

<view style="margin:20px">
  <button  bindtap="startRecord">开始录音</button>
  <button style = "margin-top:10px" bindtap="stopRecord">停止录音</button>
</view>

点击这两个按钮,分别调用startRecord和stopRecord函数,这两个函数及相关代码如下:

var app = getApp()
Page({
  data: {
    recording: false,   //  表示当前是否正在录制
    hasRecord: false,   //  表示当前是否已经成功录制,并成功生成了音频临时文件
  },
  //录制音频
 startRecord: function () {
var that = this;
//  开始录制音频
wx.startRecord({
  // 录制成功后调用
      success: function (res) {
        console.log(res.tempFilePath);
        that.setData({
          hasRecord: true,
          tempFilePath: res.tempFilePath,    //  保存音频文件临时路径       
        })
},
//  不管录制成功还是失败,都会调用该方法,用于收尾工作
      complete: function () {
        that.setData({ recording: false })
      }
    })
  },
 //  停止音频录制
 stopRecord:function()
{
   var that = this;
   console.log(this.data.tempFilePath);
    wx.stopRecord({
      success: function() {
        console.log('stop record success')
        that.setData({
          recording: false,
          hasRecord: false,
        })
      }
    })
 }
 
})

第一次点击“开始录音”按钮后,会弹出个对话框,询问是否授权音频录制,授权后,才会开始录制音频,当第一次授权后,以后不会再次弹出该授权对话框。

要注意的是,小程序模拟器对录音支持的并不好,因此,需要使用真机测试本节的例子。开启小程序真机调试模式后,点击“开始录音”按钮,弄出点声音,然后再点击“停止录音”按钮,会在真机的Console中输入如图1的临时音频文件路径。

图1  临时音频文件路径

对本文感兴趣,可以加李宁老师微信公众号(unitymarvel):

关注  「极客起源」  公众号,获得更多免费技术视频和文章。

猜你喜欢

转载自blog.csdn.net/nokiaguy/article/details/108354199