2013-10-29 30 views
-1

是否有任何其他方式來加載webaudioAPI,除了xmlhttprequest?其他方式來加載聲音的webaudioAPI除xmlhttprequest

似乎XMLHttpRequest的只能與本地服務器,如「本地主機/ blablabla」

我希望讓我的遊戲可以不喜歡任何服務器端的本地播放打出「文件:/// E:/ blablabla」

THX

問候

+0

它似乎我需要製作我自己的'audioContext.decodeAudioData'arraybuffer而不使用xmlhttprequest 任何想法將audiofile轉換爲arraybuffer而無需xmlhttprequest? –

回答

1

嗯,你可以重新編碼的文件作爲一個數據:URL。

0

使用音頻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。