3

在我的 HTML5 Web Audio 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()跳过一两个回调——对于某些声音,既不会调用成功回调,也不会调用失败回调。

这是可以预料的吗?或者我应该深入挖掘并尝试生成一个最小的示例并提交一个错误?我错过了什么?

4

0 回答 0