我一直在尝试向<audio>
元素添加事件监听器,特别是在添加/删除轨道时。 docs声明要使用addTrack
事件,但我似乎无法使其正常工作
向下滚动到检测曲目的添加和删除
`https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio
var audio = document.getElementById("myAudio"); console.log(audio.audioTrackList) //undefined? // taken from mozilla docs /*audio.audioTrackList.onaddtrack = function(event) { console.log(event) }; audio.audioTrackList.onremovetrack = function(event) { console.log(event) };*/ function myFunction() { audio.src = 'https://www.h3webdeveloper.com/Good-For-You-THBD.mp3' audio.load(); console.log(audio.audioTrackList) //undefined? }
<button onclick="myFunction()" type="button">change track</button> <br><br> <audio id="myAudio" controls> <source src="https://www.h3webdeveloper.com/Adventures-A-Himitsu.mp3" type="audio/mp3"> Your browser does not support HTML5 audio. </video>
audioTrackList
仍然存在吗?您如何使用它...
编辑:
最终,我可以使用什么事件来检测音频(歌曲)的变化?
我一直在尝试向我的
是的,您怀疑是正确的。 TrackList
用于同一文件或流中的曲目。但是我不确定它是否可以在任何地方实现。
根据您的用例,您可以收听durationchange
event,该文件通常在加载新文件时触发。当您像在示例代码中一样设置durationchange
时,emptied
event可能会触发另一个不错的选择。但是,第一次执行此操作不会触发。