我正在使用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;
});
我第一次点击播放时声音是怎么播放的。然后,当我再次点击时,它会暂停,就像代码一样。但它只是暂停?我希望它能够播放,然后当我再次点击它时,回到0然后再按照代码再次播放?
答案 0 :(得分:25)
我在播放音频方面遇到了类似的问题,但设法通过在load()
调用之前调用play()
方法来解决问题。试试这个:
$('.sound').live('click', function () {
var sound = $("#letter_audio")[0];
sound.load();
sound.play();
return false;
});
我认为这比重置src
属性要好两个原因:
src
值,而不是在JavaScript 嵌入不同音频格式的多个<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>
答案 1 :(得分:3)
试试这个..基本上,重置src
属性应该根据需要重置音频。
$('.sound').live('click', function () {
var sound = $("#letter_audio")[0];
sound.src = "audio/bomb.mp3";
sound.play();
return false;
});
答案 2 :(得分:0)
目前看来,currentTime属性是只读的(2011年它有一个wont-fix status)
然而,在你的音频对象上再次设置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
一次,您可能希望在设置过程中将其调用到某处。
答案 3 :(得分:0)
您可以使用php在时间();
的网址末尾添加查询 <source src="URLtoTrack.mp3?<?php echo time(); ?>" />
适合我。