除了 xmlhttprequest 还有其他方法可以加载 webaudioAPI 吗?
似乎 xmlhttprequest 只能与“localhost/blablabla”之类的本地服务器一起玩
我想让我的游戏可以在本地玩,而不需要像 'file:///E:/blablabla' 这样的任何服务器端
谢谢
问候
除了 xmlhttprequest 还有其他方法可以加载 webaudioAPI 吗?
似乎 xmlhttprequest 只能与“localhost/blablabla”之类的本地服务器一起玩
我想让我的游戏可以在本地玩,而不需要像 'file:///E:/blablabla' 这样的任何服务器端
谢谢
问候
好吧,您可以将文件重新编码为 data: URL。
使用音频 api 时你的目标是什么?有两件事可以用作来源。首先,您可以使用您指定 192000Hz PCM 的 Source 节点。如您所知,这是由.decodeAudioData
数组缓冲区解码的。这需要大量的时间和精力。第二种更简单的方法是使用<audio>
标签。您可以给它一个 src(即使使用 file:///E:/blablabla),它加载速度非常快,或者使用 data-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();
这只是让音频标签播放音频,但是当音频标签连接到源节点时,它会自动静音并将音频发送到音频 api。