小程序和浏览器端如何将腾讯云返回arraybuffer音频数据转为base64并 存储到本地获取临时地址并播放音频

 最近在做一个小程序接入腾讯云语音合成的功能,目的是将文本转换为语音并播放。调用腾讯云服务后会返回给我们一个arraybuffer流数据,并不是一个直接可供播放的音频地址,那么在小程序端我们又如何进行转换最终获取到一个临时地址并播放呢?

请看如下代码:

//创建媒体控制对象
const audioContext = wx.createInnerAudioContext();

wx.request({
  method: "POST",
  url: "https://tts.cloud.tencent.com/stream",
  header: {
    "Content-Type": "application/json",
    Authorization: Signature,
  },
  responseType: "arraybuffer", // 设置响应类型为 arraybuffer
  data: params,
  success(res) {
    // 获取到响应的二进制数据
    const arrayBuffer = res.data;
    // 将 arrayBuffer 转为 base64 字符串
    const base64String = wx.arrayBufferToBase64(arrayBuffer);
    // 将 base64 字符串转为文件
    const filePath = `${wx.env.USER_DATA_PATH}/${message.id}.mp3`;
    wx.getFileSystemManager().writeFile({
      filePath,
      data: base64String,
      encoding: "base64",
      success(e) {
        audioContext.src = filePath;
        audioContext.play();

        // 可以使用 filePath 进行后续操作,如播放音频或显示图像等
      },
      fa
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值