[英]HTML5 Audio - Sound only plays once
我正在使用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并再次播放,如代码所示?
我在播放音频时也遇到了类似的问题,但是设法通过在play()
调用之前调用load()
方法来解决它。 尝试这个:
$('.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>
尝试一下..基本上,重设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()在网址末尾添加查询;
<source src="URLtoTrack.mp3?<?php echo time(); ?>" />
为我工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.