2013-10-29 29 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。