我不清楚在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事件系统工作原理的基本信息?