javascript - 一段时间后,每个播放节点都会触发 `ended` 事件两次
问题描述
对于我在 Windows 上的 Chrome、Edge 和 Opera 中的ended
每个实例,该事件会触发两次(或更多)。AudioScheduledSourceNode
Firefox 似乎每个节点都会触发一次上述事件。
var buffersPlaying = 0;
function bufferEnded() {
// This function is called twice (or more?) per one source node
buffersPlaying -= 1;
}
function play(output, buffer) {
const source = context.createBufferSource();
source.buffer = buffer;
source.connect(output);
source.start(context.currentTime);
source.addEventListener('ended', bufferEnded);
buffersPlaying += 1;
}
起初,ended
每个节点只触发一次该事件,但在几分钟和数千次播放声音之后,该事件开始为一些播放的缓冲区触发两次。
事件触发两次是正常的,还是浏览器错误?