javascript 停止点击按钮的音频

javascript stop audio from button click

调用生成函数时,应播放声音。如果按钮被触发,声音应该停止。执行此操作的最佳方法是什么?

    <script>

    var audio = new Audio('assets/spin.mp3');

        function generate()
            {

                /* some code goes here*/
                audio.play();
            }

    </script>

    <button onClick="game.rotationAngle=0; game.draw();generate();audio.stop();">start</button>

这是我需要在触发按钮时执行的一种重置。这就是为什么声音需要停止,然后才会再次 运行。

我在调试中遇到这个错误:

您可能想使用 audio.pause(),因为没有 stop 方法。如果你检查 Audio.prototype.stop 它是未定义的。

没有audio.stop()这样的函数。 您可以改用以下内容:

function generate() {
    if(!audio.paused) { /* Check if it's not paused */
        audio.pause();  /* To pause the audio */
        audio.currentTime = 0;  /* To reset the time back to 0 */
    }
    else {
        audio.play();  /* To make it play again */
    }
};

使用audio.pause()代替audio.stop()

  1. 您应该区分点击第 n 次 (n+1)th 次。为此,只需检查音频是否暂停。
  2. <script> 标签之外使用 audio 无效,因为您在脚本标签中定义了它。
  3. 如果您想重新开始曲目,还应将当前时间设置为零。

下面是生成的代码。

<script>
    var audio = new Audio('assets/spin.mp3');
    function generate() {
        /* some code goes here*/
        if(audio.paused) {audio.currentTime=0;audio.play()}
                   else  audio.pause();
    }
</script>
<button onClick="game.rotationAngle=0; game.draw();generate();">start</button>