由于
wx.arrayBufferToBase64
方法停止维护了,我试了很多其他的方法都不能有效的把文件流转成base64再交给innerAudioContext.src
播放声音。
最后的解决办法
- 从后端接收文件流。
- 将文件通过
writeFile
方法下载至本地。 - 使用下载的路径直接播放。
不知道为什么
writeFile
方法有时候无法覆盖同位置同名的文件,
播放时会播放之前储存的文件。
索性给文件名加上了不会重复的uuid,获取uuid的方法我是自己写的,放在下面了。
const {
uuid
} = require('../../utils/util');
wx.request({
url: `${
baseURL}/speech/synthesize`, //调用后端接口
method: "POST",
header: {
//想在fromdata里添加参数需要加这个请求头(重要)
'content-type': 'application/x-www-form-urlencoded',
//给后端的token认证,没有可省略👇
'Authorization':