Javascript 收听HTML5音频元素何时停止播放
我需要在HTML5音频元素停止播放时调用一个函数。具体而言,该功能将重置搜索栏,并将暂停图标更改为播放图标 以下是我的JavaScript:Javascript 收听HTML5音频元素何时停止播放,javascript,html,html5-audio,Javascript,Html,Html5 Audio,我需要在HTML5音频元素停止播放时调用一个函数。具体而言,该功能将重置搜索栏,并将暂停图标更改为播放图标 以下是我的JavaScript: var audio = document.getElementById('audio'); audio.addEventListener('ended', stopAudio); function stopAudio() { audio.stop(); $('.play-pause .play').show(); $('.pla
var audio = document.getElementById('audio');
audio.addEventListener('ended', stopAudio);
function stopAudio() {
audio.stop();
$('.play-pause .play').show();
$('.play-pause .pause').hide();
}
。。只有内部的代码一经调用就不会执行。音频播放成功,结束成功,只是没有调用我的函数。我遗漏了什么?这是因为当我认为您打算使用
getElementsByTagName
时,您正在使用getElementById
并传递audio
,或者您的音频元素id不正确。我需要:
audio.stop代码>
而不是
audio.stop()代码>
哪个修复了它:)HTML音频元素没有方法stop()
。事件处理程序不“工作”的原因是因为行audio.stop()代码>抛出错误,下面的任何内容都不会执行。为了检测音频是否已结束,您的代码应该如下所示。无法检测它是否已停止,但您可以检测它是否已结束或暂停。如果要查找暂停时的代码,请将“结束”替换为“暂停”
代码在我看来没问题。你确定它没有运行吗?也许可以在stopAudio()中尝试console.log()或类似命令;您的是否查找“事件处理程序”没有——这是因为我有audio.stop()代码>当我需要时audio.stop代码>。使用getElementById
使它工作起来。您根本不需要那一行。音频已经停止,因此事件触发结束。此外,音频元素上甚至不存在称为“stop”的方法。看看我的答案。
document.getElementById('audio').addEventListener("ended",function() {
$('.play-pause .play').show();
$('.play-pause .pause').hide();
}