用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

小程序社区 首页 教程 实战教程 查看内容

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

Rolan 2020-9-2 13:58

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

通过 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  临时音频文件路径

鲜花
鲜花
鸡蛋
鸡蛋
分享至 : QQ空间
收藏