2 回答

TA貢獻1842條經驗 獲得超13個贊
你可以用ended
事件來做到這一點。ended
所以你應該只在你想要的元素上監聽事件,如下所示:
const audio = document.querySelector("audio");
audio.addEventListener('ended', (event) => {
console.log('audio has been ended');
});
<audio controls src="https://interactive-examples.mdn.mozilla.net/media/examples/t-rex-roar.mp3">
Your browser does not support the <code>audio</code> element.
</audio>

TA貢獻1829條經驗 獲得超4個贊
使用該onended功能。
<audio controls="controls" controlsList="nodownload" onended="console.log('ended!');">
<source src="///file-examples.com/wp-content/uploads/2017/11/file_example_MP3_700KB.mp3" type="audio/mp3" id="my_audio">
</audio>
你也可以試試:
$('#my_audio').parent().play().then(() => {
const checkAudio = () => {
if ($('#my_audio').parent()[0].ended) {
console.log('ended!');
} else {
setTimeout(checkAudio, 100);
};
};
});
<audio controls="controls" controlsList="nodownload">
<source src="///file-examples.com/wp-content/uploads/2017/11/file_example_MP3_700KB.mp3" type="audio/mp3" id="my_audio">
</audio>
添加回答
舉報