我有一个带有mouseouver事件的菜单,触发声音文件开始播放。麻烦的是,如果用户将鼠标悬停在菜单中的另一个链接上,则会再次播放声音。
我想弄清楚的是如何一次只播放一个声音?即。等到当前声音播放完毕再开始播放?
有什么想法吗?
这是我目前所拥有的代码。它使用jQuery.sound.js插件。
.mouseover(function(){
$.fn.soundPlay({url: 'images/casino.wav'});
})
喝彩! 癸
答案 0 :(得分:1)
执行此操作的唯一方法是在声音停止播放时触发一个回调。但是,我不认为有一个插件支持这样的东西:
$.fn.soundPlay({url: 'images/casino.wav',
finishedPlaying: function() {}});
如果你有这个,你可以在声音开始播放时禁用鼠标悬停,并在声音结束时再次启用它。
答案 1 :(得分:0)
不确定是否可以像普通的jquery函数一样等待soundPlay函数结束。
如果你知道声音持续了多长时间,我会看到一个变量,它使用已知的持续时间打开和关闭:
var soundPlaying = false;
.mouseover(function(){
if (!soundPlaying) {
$.fn.soundPlay({url: 'images/casino.wav'});
soundPlaying = true;
setTimeout('soundPlaying = false;',1000);
}
});
我假设播放声音的持续时间为1000毫秒。