设置src时,为什么音频元素会中止事件?

时间:2018-07-09 06:07:34

标签: javascript html5 html5-audio

我不清楚在HTML5 src元素上设置audio时究竟会发生什么,并且该规范也没有太大帮助。

具体来说,我的问题是这样:

const audio = new Audio()
audio.src = "first.mp3"
audio.onratechange = e => console.log('[RATE CHANGE]', e.target.playbackRate)

audio.playbackRate = 0.5

audio.src = "second.mp3"
audio.src = "third.mp3"

设置playbackRate应该会触发ratechange事件。但是在上面的示例中,发生的情况是通过设置src终止了“ 0.5”的事件(?)-取而代之的是,我们为{1设置了ratechange,这是由于重置{{ 1}}到playbackRate

应该是非defaultPlaybackRate的第一个ratechange事件发生了什么?

此外,此cancelable事件也不会触发,因为再设置ratechange一次也会占用此事件。因此,我们最终不得不设置src,根本没有触发playbackRate事件。

请参阅:Fiddle

我想我缺少有关JS事件系统工作原理的基本信息?

0 个答案:

没有答案