如果声音正在播放jquery

时间:2010-11-05 09:09:46

标签: jquery audio

我有一个带有mouseouver事件的菜单,触发声音文件开始播放。麻烦的是,如果用户将鼠标悬停在菜单中的另一个链接上,则会再次播放声音。

我想弄清楚的是如何一次只播放一个声音?即。等到当前声音播放完毕再开始播放?

有什么想法吗?

这是我目前所拥有的代码。它使用jQuery.sound.js插件。

.mouseover(function(){
$.fn.soundPlay({url: 'images/casino.wav'});
})

喝彩! 癸

2 个答案:

答案 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毫秒。