单击时播放/暂停,但仅一次

Play/Pause on onclick, but only once?

本文关键字:一次 播放 暂停 单击      更新时间:2024-06-09

以下代码播放并停止音频文件,但只播放一次。(1次播放,1次暂停)。有没有办法定期播放/暂停?

function audioHandler(){
 var audio = document.getElementById("myaudio"); 
 if(status == false){
 audio.style.display="block";
 audio.play();
 status = true;
 }
 else {
 audio.style.display="none";
 audio.pause();
 status = false;
 }
}

这没那么重要,但我也想把播放改为暂停图标,然后向后。。。

<a href="#" onclick="audioHandler()"><img src="play.png"></a>

问题是全局变量status,因为您将其用作全局变量(窗口对象有一个名为status的属性),所以分配给它的值将转换为字符串。

因此,当您应用status = false时,分配的实际值将是status = 'false';,它将始终是true,即'false' == false将是false,因此您的if块将永远不会再次执行!!!

因此,只需将变量status重命名为其他变量,它就可以工作

var aStatus = false;
function audioHandler() {
    var audio = document.getElementById("myaudio");
    var audioimg = document.getElementById("myaudioimg");
    if (aStatus == false) {
        audio.style.display = "block";
        audio.play();
        aStatus = true;
        audioimg.src = "pause.png"
    } else {
        audio.style.display = "none";
        audio.pause();
        aStatus = false;
        audioimg.src = "play.png"
    }
}

然后

<a href="#" onclick="audioHandler()"><img id="myaudioimg" src="play.png" /></a>