2012-01-13 83 views
0

我想用jquery做一個節拍器,用點擊聲音和一個顏色來顯示節奏。在那一點上,視覺部分工作正常,但我有一個聲音的問題。如何在Jquery循環(節拍器)中播放聲音?

無法使其工作,它應該每分鐘發出多次與所選速度一樣的次數。

下面是代碼:

$(function(){ 
var intervalReference = 0; 

var metronomeTick = function() { 
    $("#metronome").stop(); 
    $("#metronome").animate({opacity: 1}, 
     30,        
     function() { $(this).animate({opacity:0}); 
     $("#beep").append('autostart', 'true'); 
    } 
    ); 
}; 

$(function() { 
    var slider = $("#bpm").slider({ 
     min: 40, 
     max: 240, 
     value: 120, 
     slide: function(event, ui) { 
      clearInterval(intervalReference); 
      intervalReference = setInterval(metronomeTick, 1000*60/ui.value); 
      $("#bpmshow").text("bpm: " + ui.value); 
     } 
    }); 
}); 
}); 

HTML:

<div id="bpm"></div> 
<span id="bpmshow"></span> 
<div id="metronome"></div> 
<embed id="beep" src="timer.wav" hidden="true" loop="true" autostart="false"> 

任何幫助,將不勝感激,非常感謝!

回答

0

好吧,我錯了。

每次我的視覺 div顯示時,我都想聽到聲音。問題是我用animate()函數來做到這一點,並且它不能觸發play()事件。

我已經重寫使用window.setTimeout()控制時序的代碼,並play()加載和蜂鳴感謝玩到HTML5 <audio>標籤。

抱歉無法解釋更多,腳本尚未完成。

0

$("#beep").append('autostart', 'true');將文本追加到元素。您可能需要設置自動啓動屬性本身:

$("#beep").attr('autostart', 'true'); 
+0

謝謝,但它仍然無法正常工作。這就像聲音不在循環中一樣。也許我錯誤地嘗試使用嵌入標籤而不是其他東西。 – SuN 2012-01-13 16:11:04

+0

jQuery有一個聲音插件,試試看。 – 2012-01-13 16:12:22