用javascript停止html声音
我对javascript的使用没有真正的经验,所以这个问题可能有点傻。我目前正在尝试开发一个音板。一切都很好,除了一件事,我想停止声音时,另一个按钮被点击,我真的不知道我怎么能做到这一点 这是我想做的一个例子: 我单击按钮1,声音播放,当声音仍在播放时,我单击按钮2,按钮1的声音停止,而按钮2的声音开始播放。(依此类推) Html代码:用javascript停止html声音,javascript,html,audio,Javascript,Html,Audio,我对javascript的使用没有真正的经验,所以这个问题可能有点傻。我目前正在尝试开发一个音板。一切都很好,除了一件事,我想停止声音时,另一个按钮被点击,我真的不知道我怎么能做到这一点 这是我想做的一个例子: 我单击按钮1,声音播放,当声音仍在播放时,我单击按钮2,按钮1的声音停止,而按钮2的声音开始播放。(依此类推) Html代码: 功能评估声音(soundobj){ var thissound=document.getElementById(soundobj); 这个声音。play();
功能评估声音(soundobj){
var thissound=document.getElementById(soundobj);
这个声音。play();
}
音频{
可见性:隐藏;
}
音频元素有一种暂停方法。您可以使用与使用
play
相同的方法使用它
在这个问题中提到了类似的东西:。
Javascript
在处理音频时有一个有用的方法,那就是pause()
试试这个,如果单击第二个按钮(id=b),停止调用声音的第一个按钮(id=a)
如果我正确理解您的意思,您只需要在js中使用以下内容:
功能评估声音(soundobj){
document.getElementsByClassName('audio').map(函数(thissound){
if(thissound.id==soundobj){
thissound.start();
}
否则{
这个声音。暂停();
}
});
}
如果调用thissound.pause()
,它将停止播放声音。您要做的是,在函数结束并删除局部变量后,能够调用thissound.pause()
。这意味着您需要将其存储在一个全局变量中,例如,您可以调用currentsound
,这样您就可以在另一个EvalSound
调用中访问它。这会让你得到如下结果:
var currentsound;
function EvalSound(soundobj) {
currentsound.pause();
var thissound = document.getElementById(soundobj);
thissound.play();
currentsound = thissound;
}
然而,这给我们带来了两个问题。当您调用EvalSound
时,上一个声音会暂停,当再次调用同一个声音时,它将从暂停时的位置开始。因此,我们需要设置开始播放的时间。另一个问题是,当您第一次调用EvalSound
时,currentsound
将被取消定义,并且调用currentsound.pause()代码>将导致错误。为了解决这个问题,我们可以添加以下内容:
var currentsound;
function EvalSound(soundobj) {
if(currentsound)
{
currentsound.pause();
}
var thissound = document.getElementById(soundobj);
thissound.currentTime = 0;
thissound.play();
currentsound = thissound;
}
var currentsound;
function EvalSound(soundobj) {
if(currentsound)
{
currentsound.pause();
}
var thissound = document.getElementById(soundobj);
thissound.currentTime = 0;
thissound.play();
currentsound = thissound;
}