是否有任何其他方式来加载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? –