javascript停止按钮点击音频

时间:2016-06-11 17:59:22

标签: javascript audio mp3

调用函数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>

触发按钮时我需要执行一种重置。这就是为什么声音需要在它再次运行之前停止的原因。

我在调试中遇到此错误: error

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

  1. 您应该区分点击 nth (n + 1)时间。为此,只需检查音频是否暂停。
  2. 使用audio<script>标记之外无效,因为您在脚本代码中定义了它。
  3. 如果您想要开始追踪,您还应该将当前时间设置为零。
  4. 以下是生成的代码。

    <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>
    

答案 2 :(得分:0)

没有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 */
    }
};

答案 3 :(得分:0)

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