在Firefox中使用decodeAudioData()解码音频文件块

时间:2017-09-29 18:10:45

标签: firefox audio mime-types web-audio-api

我将音频文件转换为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);
        });
    });
};

0 个答案:

没有答案