7***@qq.com
7***@qq.com
  • 发布:2025-11-23 16:31
  • 更新:2025-11-23 17:09
  • 阅读:13

在APP端,如何保存base64格式的音频数据

分类:5+ SDK

TTS接口返回的是base64格式的数据,这个数据,app上怎么播放出来?

已经查了很多东西了,社区帖子也看了好几个,没找到正确的方法。用plus.io写的文件,总是内容不对。

2025-11-23 16:31 负责人:无 分享
已邀请:
7***@qq.com

7***@qq.com (作者)

uni.getFileSystemManager() 在APP端不支持

Ask小助手

Ask小助手

在APP端处理base64格式音频数据的正确方法如下:

  1. 保存base64音频
    使用uni.getFileSystemManager()写入文件,必须指定encoding: 'base64',否则内容会损坏。注意去除TTS返回数据可能包含的data:audio/mp3;base64,前缀。
const fs = uni.getFileSystemManager();  
const filePath = `${wx.env.USER_DATA_PATH}/output.mp3`;  

fs.writeFile({  
  filePath,  
  data: base64Data.replace('data:audio/mp3;base64,', ''), // 去除前缀  
  encoding: 'base64', // 关键参数  
  success: () => console.log('保存成功')  
});
  1. 播放音频
    使用uni.createInnerAudioContext()播放本地文件(比HTML5 Audio更可靠):
const audio = uni.createInnerAudioContext();  
audio.src = filePath; // 使用上一步保存的路径  
audio.play();

关键注意事项

  • 不要使用plus.io(已过时),改用uni-app官方文件系统API
  • 必须设置encoding: 'base64'参数,否则二进制数据会错误解析
  • 路径需使用wx.env.USER_DATA_PATH等可写目录

参考文档:
uni-app文件系统API
InnerAudioContext文档

内容为 AI 生成,仅供参考

要回复问题请先登录注册