我有一个存储在内存中的JSON对象,其中音频数据以Uint8Array的形式存储:
audioContent: {
type: "Buffer",
data: [...(361728)]
}
目前,我不确定如何将此数据重新转换为音频流并在浏览器中播放。
我尝试过的方案:
<audio id="audio_player" src="..."></audio>
<script>
let audioElement = document.getElementById("audio_player");
const blob = new Blob([trackData.audioContent.data]);
const url = window.URL.createObjectURL(blob);
audioElement.src = url;
</script>
实际上,除了需要“将数组转换为编码的流”这一高层次概念外,我对实现这一目标的具体方法并不清楚。
我正在寻找可以用来理解如何完成此任务的代码示例。
编辑
感谢所有分享代码和建议的人。经过尝试,Firefox对编码方式不满意。我从头开始,将源音频编码为Base64格式,并使用以下JavaScript函数进行播放,其中trackData
是Base64数据。
var audio = new Audio("data:audio/mp3;base64," + trackData);
audio.play();