将 wav 文件的 ArrayBuffer 转换为 Blob

用户3927415

我正在尝试从服务器获取一个音频 wav 文件,并在客户端中使用该元素播放它。

<audio id="recording" src="..." />`

我得到的数据是 ArrayBuffer,我试图将它转换为 blob,以便我可以更改元素的 src

这是代码:

fetch("http://localhost:8080/", requestOptions)
    .then( (response) => {
        return response.arrayBuffer()
    }).then( (data) => {
        let a = new Blob([data], {type : 'audio/wav'});
        document.getElementById("recording").src = a;
    })
    .catch(error => console.error( error));

但是有一个错误:

GET chrome-extension://goohbjdkcejkkochpdellmjkkdpfngph/[object%20Blob] net::ERR_FILE_NOT_FOUND

看来我没有正确创建 Blob

如何创建 blob 并将其传递给<audio ... />元素?

亚历山大

你必须从你的 blob创建一个实际的 URL。并且不要忘记在之后撤销它以释放资源。

let blob = new Blob([data], {type : 'audio/wav'});
const url = URL.createObjectURL(blob);
document.getElementById("recording").src = url;
URL.revokeObjectURL(url);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章