簡體   English   中英

javascript從按鈕單擊停止音頻

[英]javascript stop audio from button click

調用函數generate時,應播放聲音。 如果按鈕被觸發,聲音應停止。 最好的方法是什么?

    <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則它是未定義的。

  1. 您應該區分單擊第n次 (n + 1)次 為此,只需檢查音頻是否已暫停。
  2. <script>標記之外使用audio無效,因為您在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>

沒有諸如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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM