HTML5音频 – 声音仅播放一次

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

 $('.sound').live('click', function () { var sound = $("#letter_audio")[0]; sound.pause(); sound.currentTime = 0; sound.play(); return false; }); 

我第一次点击播放时声音怎么播放。 然后当我再次点击时,它会暂停,就像代码一样。 但它只是暂停? 我想要它播放,然后当我再次点击它时,回到0并再次播放,如代码中所示?

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

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

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

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

      

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

 $('.sound').live('click', function () { var sound = $("#letter_audio")[0]; sound.src = "audio/bomb.mp3"; sound.play(); return false; }); 

似乎暂时currentTime属性是只读的(在2011年它有一个不会修复的状态 )

然而,在你的音频对象上设置src (再次) – 就像@Lloyd提出的那样 – currentTime属性变得可设置(至少在Linux的当前chrome版本(24.0.1312.69)上)。

这意味着加入奇怪的线条

 audio.src = audio.src 

你的例子做了它应该做的事情。

在全:

 $('.sound').live('click', function () { var sound = $("#letter_audio")[0]; sound.src = sound.src; sound.pause(); sound.currentTime = 0; sound.play(); return false; }); 

因为它足够设置src一次,你可能想在安装过程中的某个地方调用它。

您可以使用php在time()的末尾添加查询;

适合我。