如何将base64转为可以播放的音频文件?

接口返回的数据是base64的编码,但是有一些返回的数据太长导致无法播放,所以如何转为音频文件播放呢?
下面是接口返回的数据,短的话可以直接用data:audio/x-wav;base64,${res.result.Audio}作为地址播放,但是太长了就不行了.所以还是转为音频文件稳定一些,如何转为音频文件呢?

{
    "Response": {
        "Audio": "UklGRlR/AABXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YSx9AAD+////AQD//wAAAAAAAAIAAQADAAMABgAEAAYABQAGAAUABwAIAAgACQAAE......AAgACAAEAAgADAAIAAwACAAQAAwACAAIAAgADAAMAAgACAAIAAwABAAAAAAAAAAAAAAD/////AAAAAAAA//8AAP///v/9//7//v///////v8AAP///////wAA/////wAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAA",
        "RequestId": "9a7a1615-3e09-4db2-8032-5c6f497f7e6a",
        "SessionId": "session-1234"
    }
}
阅读 17.2k
2 个回答

试试base64转成blob数据,

function dataURLtoBlob(dataurl) {

var arr = dataurl.split(','),
    mime = arr[0].match(/:(.*?);/)[1],
    bstr = atob(arr[1]),
    n = bstr.length,
    u8arr = new Uint8Array(n);

while (n--) {
    u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], { type: mime });

}

在使用 createObjectURL函数转成资源路径赋值到video的src属性上。

我不太确定是否可以,可以先试下。

新手上路,请多包涵

请问你这个问题解决了吗,遇到了同样的问题(#-#)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题