我将音频文件转换为aac-adts并将其作为块发送到客户端。 然后将所有块附加到要播放的缓冲区。 它抛出的Firefox中的问题“传递给decodeAudioData的缓冲区包含未知的内容类型。”仅与第二个块有关。
在检查第一个块“audio / x-hx-aac-adts”和第二个块“application / octet-stream”的mimetype之后。接缝是不同的。
Firefox成功解码了第一个块,但没有成功解码。
任何帮助??
request.open("GET", "/Content/AudioFiles/chunk-2.aac", true);
request.responseType = 'arraybuffer';
request.send();
request.onload = function () {
var undecodedAudio = request.response;
context.decodeAudioData(undecodedAudio, function (data) {
sourceBuffer.buffer = data;
numberOfChannels = sourceBuffer.buffer.numberOfChannels;
var splitter = context.createChannelSplitter(numberOfChannels);
var channels = document.getElementById('channels');
for (var i = 0; i < numberOfChannels; i++) {
var element = '<div class="channelDiv"><input type="checkbox" class="channel" onclick="toggleChannel(' + i + ')" id="channel' + i + '"/> <label for="channel' + i + '">channel ' + i + '</label></div>';
channels.innerHTML += element;
$('.channel').each(function (index, item) {
item.checked = true;
});
gains[i] = context.createGain();
}
sourceBuffer.connect(splitter, 0, 0);
//Connect splitter' outputs to each Gain Nodes
gains.forEach(function (item, index) {
splitter.connect(item, index);
item.connect(context.destination, 0);
});
});
};