2
我试图在用户点击我的web应用程序中的按钮时播放音效。在移动浏览器上同时播放多个单声道音效?
我第一次尝试这种方法:
var sound = new Audio("soundeffect.ogg");
function clickHandler(){
sound.play();
}
但是,如果用户快速连续按下按钮两次,声音只播放一次。我认为这是因为声音没有完成播放,因此不会被回放。
然后我试了这个解决方案。
var sound = new Audio("soundeffect.ogg");
function clickHandler(){
sound.currentTime = 0;
sound.play();
}
但是,这会导致第一个声音在下一个播放之前切断。
然后我试过这个版本,这将创建一个新的声音效果每个按钮被点击时间:
function clickHandler(){
var sound = new Audio("soundeffect.ogg");
sound.play();
}
这工作完全我的开发机器上,但使用移动数据的Android铬,声音效果似乎每次单击按钮时都必须加载,导致在播放声音之前延迟几秒钟。
我希望在全局范围声明声音效果,然后克隆它可能有助于保持它在缓存中,但它似乎没有帮助。
var sound = new Audio("soundeffect.ogg");
function clickHandler(){
var oneShotSound = sound.cloneNode();
oneShotSound.play();
}
谢谢!很有用! – helderk 2016-09-15 19:01:19