HTML5音频 - 声音仅播放一次

Har*_*rry 13 jquery google-chrome html5-audio

我使用的是Chrome,这是我的代码:

<audio id="letter_audio" src="audio/bomb.mp3" type="audio/mp3" preload="auto"></audio>

    $('.sound').live('click', function () {

        var sound = $("#letter_audio")[0];  

        sound.pause();
        sound.currentTime = 0;
        sound.play();

        return false;
    });
Run Code Online (Sandbox Code Playgroud)

我第一次点击播放时声音怎么播放.然后当我再次点击时,它会暂停,就像代码一样.但它只是暂停?我希望它能够播放,然后当我再次点击它时,返回0并再次播放代码中的代码?

Tom*_*Tom 28

我在重放音频方面遇到了类似的问题,但设法通过在调用load()之前调用方法来解决它play().试试这个:

$('.sound').live('click', function () {
    var sound = $("#letter_audio")[0];

    sound.load();
    sound.play();

    return false;
});
Run Code Online (Sandbox Code Playgroud)

我认为这比重置src属性更好,原因有两个:

  1. 保留src页面内容中的值,而不是JavaScript中的值
  2. 嵌入<source>不同音频格式的多个元素时有效:

    <audio id="letter_audio">
       <source src="audio/bomb.mp3" type="audio/mp3" preload="auto"/>
       <source src="audio/bomb.ogg" type="audio/ogg" preload="auto"/>
    </audio>
    
    Run Code Online (Sandbox Code Playgroud)


Llo*_*oyd 3

试试这个..基本上,重置src属性应该根据需要重置音频。

$('.sound').live('click', function () {

    var sound = $("#letter_audio")[0];  

    sound.src = "audio/bomb.mp3";
    sound.play();

    return false;
});
Run Code Online (Sandbox Code Playgroud)