拥有
var audio = new Audio("click.ogg")我在需要的时候播放点击声
audio.play()但是,有时用户速度太快,以至于浏览器根本不播放音频(可能还在播放以前的play请求时)。此问题与预加载有关吗?
如何迫使浏览器停止播放并重新开始?没有stop,只有pause在HTML5音频组件,对吗?这里有什么解决办法?
更新-附加说明:
我有多个类似复选框的div元素和一个touchend事件。当触发这样的事件时,元素就会在视觉上发生变化,播放声音,并相应地设置内部变量。如果用户慢慢地点击这些元素,一切都会很好地工作。如果快速敲击,声音通常会被完全跳过.
发布于 2014-04-03 12:30:58
最简单的解决方案是重置音频currentTime并确保它使用play()方法播放。检查音频是否正在播放是不必要的,因为后续的play()调用不会做任何事情。
audio.currentTime = 0;
audio.play();发布于 2013-04-15 09:54:52
这是我一直在使用的代码,它正在为我工作:
if(audioSupport.duration > 0 && !audioSupport.paused){
//already playing
audioSupport.pause();
audioSupport.currentTime = 0;
audioSupport.play();
}else{
//not playing
audioSupport.play();
}发布于 2020-03-07 00:30:20
我注意到在Firefox上,一次又一次地播放声音非常快(就像一个短的滴答声)会经常跳过节拍。我得到的最好的解决方案就是简单地调用cloneNode并以这种方式播放每个声音。它并不完美(与听起来完美无瑕的Chrome相比):
var audio = document.getElementById('myaudio');
setInterval(function() {
audio.cloneNode().play();
}, 100);https://stackoverflow.com/questions/13002935
复制相似问题