Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 收听HTML5音频元素何时停止播放_Javascript_Html_Html5 Audio - Fatal编程技术网

Javascript 收听HTML5音频元素何时停止播放

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

我需要在HTML5音频元素停止播放时调用一个函数。具体而言,该功能将重置搜索栏,并将暂停图标更改为播放图标

以下是我的JavaScript:

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();
}