我使用網絡音頻api將n通道音頻文件解碼爲單獨的通道,然後將這些通道渲染到畫布上以可視化地創建頻率計。更高效的decodeAudioData()?
我正在使用decodeAudioData解碼字節的數組緩衝區,然後將其分配給單獨函數中的音頻緩衝區源節點。
// load the specified sound
function loadSound(url) {
var request = new XMLHttpRequest();
request.open('GET', url, true);
request.responseType = 'arraybuffer';
// When loaded decode the data
request.onload = function() {
// decode the data
context.decodeAudioData(request.response, function (buffer) {
// when the audio is decoded play the sound
holdingBuffer = buffer;
setupSound(buffer);
}, onError);
}
request.send();
}
我遇到的問題是,當我試圖解碼大約60MB +音頻,瀏覽器會崩潰,由於缺乏存儲space.The decodeAudioData功能是極其內存餓了!
我想知道是否有人有更有效的方式解碼較大的音頻文件的任何經驗?
您是否在移動設備上運行? 60 MB(壓縮)很大,但對臺式機來說不是那麼大。 –