在我的HTML5网络音频API应用程序中,我正在加载一大堆背景音频文件,或多或少像这样(没什么真正的花哨):
GET(
sound.url,
function(response) {
ctx.decodeAudioData(
response,
function(buffer) {
buffers[sound.url] = buffer;
on_buffer_load(sound.url);
},
function() {
fail(
"failed to decode sound", sound.id,
"from", sound.url
);
}
);
},
function(response, status) {
fail(
"failed to load sound", sound.id,
"from", sound.url,
"response:", status, response
);
},
"arraybuffer"
)
同时用户可以在UI中自由地做一些事情 - 只要他正在做的事情不需要加载声音。
看起来,如果用户在加载声音时触发confirm()
调用,decodeAudioData()
会跳过一两个回调 - 对于某些声音,不会调用成功或失败的回调。
这是预期的吗?或者我应该深入挖掘并尝试生成一个最小的示例并提交错误?我错过了什么?