最近做微信小程序需要把錄音文件保存起來然后在另一個(gè)地方再播放肴捉,錄音用的是wx.startRecord接口返回的是錄音文件的臨時(shí)路徑,開始以為是和選擇圖片保存圖片沒什么兩樣的操作叔收,結(jié)果和后端同事一起折騰了好半天齿穗,他都給寫好了base64轉(zhuǎn)碼的接口,最后還是播放不出來饺律,到網(wǎng)上搜了一圈發(fā)現(xiàn)有同道中人發(fā)帖寫過相同的情況窃页,處理過程如下:
錄音過程:
wx.startRecord({
success: res => {
const tempFilePath = res.tempFilePath;
wx.uploadFile({
url: 'xxxxxxxx',//開發(fā)者文件上傳地址
filePath: tempFilePath,
name: 'file',
success: res => {
const url = JSON.parse(res.data);//將這個(gè)url提交保存
},
});
},
fail: res => {
showToast.fail('錄音失敗');
},
});
setTimeout(() => {
wx.stopRecord();
}, 600000);
播放音頻:
小程序播放的音頻必須是音頻文件,不是文件url
所以首先要將音頻下載再進(jìn)行播放复濒。
wx.downloadFile({
url: ‘xxxxxx’, //音頻文件url
success: res => {
if (res.statusCode === 200) {
wx.playVoice({
filePath: res.tempFilePath,
duration: this.recordTime,
complete: () => {
}
});
}
}
});