小程序中提供了兩種錄音的API
- 舊版錄音功能
首先啟動錄音,然后停止錄音即可拉到音頻的臨時地址
啟動錄音:
var that = this; wx.startRecord({ success: function (res) { // 調(diào)用了停止錄音接口就會觸發(fā)這個函數(shù),res.tempFilePath為錄音文件臨時路徑 var tempFilePath = res.tempFilePath that.setData({ src: tempFilePath }) }, fail: function (res) { //錄音失敗的處理函數(shù) } })
停止錄音:
wx.stopRecord()
播放錄音:
wx.playVoice({ filePath: src // src可以是錄音文件臨時路徑 })
- 新版錄音
獲取全局先進(jìn)錄音管理器,然后錄音都依賴他,而播放錄音則需要內(nèi)部 audio 上下文 innerAudioContext 對象。
獲取全局先進(jìn)錄音管理器:
var that = this; this.recorderManager = wx.getRecorderManager(); this.recorderManager.onError(function(){ // 錄音失敗的回調(diào)處理 }); this.recorderManager.onStop(function(res){ // 停止錄音之后,把錄取到的音頻放在res.tempFilePath that.setData({ src: res.tempFilePath }) console.log(res.tempFilePath ) });
開始錄音:
this.recorderManager.start({ format: 'mp3' // 如果錄制acc類型音頻則改成aac });
結(jié)束錄音:
this.recorderManager.stop()
播放音頻:
this.innerAudioContext = wx.createInnerAudioContext(); this.innerAudioContext.onError((res) => { // 播放音頻失敗的回調(diào) }) this.innerAudioContext.src = this.data.src; // 這里可以是錄音的臨時路徑 this.innerAudioContext.play()
- DEMO地址