是否有任何其他方式來加載webaudioAPI,除了xmlhttprequest?其他方式來加載聲音的webaudioAPI除xmlhttprequest
似乎XMLHttpRequest的只能與本地服務器,如「本地主機/ blablabla」
我希望讓我的遊戲可以不喜歡任何服務器端的本地播放打出「文件:/// E:/ blablabla」
THX
問候
是否有任何其他方式來加載webaudioAPI,除了xmlhttprequest?其他方式來加載聲音的webaudioAPI除xmlhttprequest
似乎XMLHttpRequest的只能與本地服務器,如「本地主機/ blablabla」
我希望讓我的遊戲可以不喜歡任何服務器端的本地播放打出「文件:/// E:/ blablabla」
THX
問候
嗯,你可以重新編碼的文件作爲一個數據:URL。
使用音頻API時你的目標是什麼?有兩件事情可以用作來源。首先,您可以使用指定192000Hz PCM的源節點。正如你所知道的,這是通過.decodeAudioData
從一個數組緩衝區解碼的。這需要很多時間和力量。第二個更簡單的方法是使用<audio>
標籤。你可以給它一個src(即使是file:/// E:/ blablabla),加載非常快,或者用數據url指定它(也比context.decodeAudioData
快得多)。
示例HTML:
<audio src="E:/blablabla.mp3"></audio>
例JS:
window.audiotag = document.getElementsByTagName('audio')[0];
function audioReady() {
window.AudioContext = window.AudioContext||window.webkitAudioContext;
context = new AudioContext();
source = context.createMediaElementSource(audiotag);
source.connect(context.destination);
audiotag.play();
}
audiotag.onload = audioReady();
這只是讓從音頻標籤音頻播放,但在音頻標籤被連接到sourcenode,它會自動靜音,併發送它的音頻到音頻api。
它似乎我需要製作我自己的'audioContext.decodeAudioData'arraybuffer而不使用xmlhttprequest 任何想法將audiofile轉換爲arraybuffer而無需xmlhttprequest? –