最近做微信小程序需要把录音文件保存起来然后在另一个地方再播放,录音用的是wx.startRecord接口返回的是录音文件的临时路径,开始以为是和选择图片保存图片没什么两样的操作,结果和后端同事一起折腾了好半天,他都给写好了base64转码的接口,最后还是播放不出来,到网上搜了一圈发现有同道中人发帖写过相同的情况,处理过程如下:
录音过程:
wx.startRecord({
success: res => {
const tempFilePath = res.tempFilePath;
wx.uploadFile({
url: 'xxxxxxxx',//开发者文件上传地址
filePath: tempFilePath,
name: 'file',
success: res => {
const url = JSON.parse(res.data);//将这个url提交保存
},
});
},
fail: res => {
showToast.fail('录音失败');
},
});
setTimeout(() => {
wx.stopRecord();
}, 600000);
播放音频:
小程序播放的音频必须是音频文件,不是文件url
所以首先要将音频下载再进行播放。
wx.downloadFile({
url: ‘xxxxxx’, //音频文件url
success: res => {
if (res.statusCode === 200) {
wx.playVoice({
filePath: res.tempFilePath,
duration: this.recordTime,
complete: () => {
}
});
}
}
});