2010-11-05 64 views
3

我有一個菜單,有一個mouseouver事件觸發聲音文件開始播放。麻煩的是,如果用戶鼠標懸停在菜單中的另一個鏈接,聲音再次播放。如果聲音正在玩jquery

我想弄清楚的是如何一次只播放一個聲音?即。等到當前的聲音播放完畢後才能再次播放?

任何想法?

這裏的代碼,我在這裏的地方。它使用jQuery.sound.js插件。

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

乾杯! Dec

回答

1

要做到這一點,唯一的方法是有一個回調,當聲音停止播放時會觸發。不過,我不認爲有支持這樣的一個插件:

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

如果你有這個,你可以當一個聲音開始播放,並在完成後再次啓用禁用鼠標懸停。

0

不確定是否可以等待soundPlay函數像正常的jquery函數一樣結束。

如果你認識你的聲音持續多久我就看看有沒有被打開和關閉使用已知持續時間變量:

var soundPlaying = false; 
.mouseover(function(){ 
    if (!soundPlaying) { 
     $.fn.soundPlay({url: 'images/casino.wav'}); 
     soundPlaying = true; 
     setTimeout('soundPlaying = false;',1000); 
    } 
}); 

我假定1000毫秒的聲音的持續時間正在播放。