在HTML5 / Chrome中获取AudioBuffer的onended事件

时间:2013-06-27 01:12:55

标签: html5 google-chrome web-audio

所以我在Chrome中播放音频文件,我想在播放结束时检测到,所以我可以删除对它的引用。这是我的代码

var source = context.createBufferSource();
source.buffer = sound.buffer;
source.loop = sound.loop;
source.onended = function() { 
    delete playingSounds[soundName];
}
source.connect(mainNode);
source.start(0, sound.start, sound.length);

但是,事件处理程序不会触发。这是W3 specification所描述的尚不支持吗?或者我做错了什么?

2 个答案:

答案 0 :(得分:1)

Chromium最近才添加了这个(我认为是5月底)。很确定它还没有出现在稳定版本中。

你有没有在Chrome Canary中尝试过?

答案 1 :(得分:1)

此功能在Chromium https://code.google.com/p/chromium/issues/detail?id=349543中仍然存在问题。作为一个显而易见但并不总是合适的解决方法,我建议在音频持续时间内设置一个计时器。