我正在尝试使用 Chrome 51 播放来自 fetch API 的无限流。(网络摄像头音频流为 Microsoft PCM,16 位,单声道 11025 Hz)
该代码对 mp3 文件几乎可以正常工作,除了一些小故障,但由于某种原因,它对 wav 文件根本不起作用,我得到“DOMException:无法解码音频数据”
该代码改编自此答案断断续续/听不清播放,通过 Web Audio API 使用分块音频
知道是否可以使其与 WAV 流一起使用吗?
function play(url) {
var context = new (window.AudioContext || window.webkitAudioContext)();
var audioStack = [];
var nextTime = 0;
fetch(url).then(function(response) {
var reader = response.body.getReader();
function read() {
return reader.read().then(({ value, done })=> {
context.decodeAudioData(value.buffer, function(buffer) {
audioStack.push(buffer);
if (audioStack.length) {
scheduleBuffers();
}
}, function(err) {
console.log("err(decodeAudioData): "+err);
});
if (done) {
console.log('done'); …Run Code Online (Sandbox Code Playgroud)