2016-04-28 43 views
0

我做了一個非常簡單的音板型網站(這實際上是我的第一個項目)。前提是用戶加載頁面,單擊按鈕並播放聲音。播放音頻文件之前再次點擊

我遇到的問題是,如果用戶點擊按鈕「A」,在播放按鈕「A」的聲音所需的時間x的時間內,單擊按鈕「A」不會啓動另一個實例它的聲音。

所以如果按鈕「A」的聲音需要1秒鐘播放並且用戶在1秒內點擊10次,按鈕「A」的聲音只播放一次而不是10次。

不確定此鏈接是否正常工作...但這是鏈接到小提琴嗎?請注意,沒有音頻附加到小提琴,所以聲音實際上不會播放,當你點擊按鈕。 https://jsfiddle.net/pmqr9L0s/

這是我的js的樣子至今雖然:

$(document).ready(function(){ 
    var kickBass1 = new Audio("audio/kickbass1.mp3"); 
    $(".kickbass1").click(function(){ 
     kickBass1.play(); 
    }); 

    var hihat1 = new Audio("audio/hihat1.mp3"); 
    $(".hihat1").click(function(){ 
     hihat1.play(); 
    }); 

    var snare1 = new Audio("audio/snare1.mp3"); 
    $(".snare1").click(function(){ 
     snare1.play(); 
    }); 

    //add record feature later? 
    var record = function(){ 
    } 
}); 

回答

3

嘗試移動你的點擊處理程序中的變量,讓你創建一個新的Audio元每次點擊您的按鈕中的一個時間。

$(document).ready(function(){   
    $(".kickbass1").click(function(){ 
     var kickBass1 = new Audio("audio/kickbass1.mp3"); 
     kickBass1.play(); 
    });  

    $(".hihat1").click(function(){ 
     var hihat1 = new Audio("audio/hihat1.mp3"); 
     hihat1.play(); 
    });  

    $(".snare1").click(function(){ 
     var snare1 = new Audio("audio/snare1.mp3"); 
     snare1.play(); 
    }); 
}); 
+0

謝謝!一個小題目,但雖然我沒有注意到桌面上的問題,但是當我在手機上打開我的網站時,似乎點擊按鈕和音頻播放之間有點延遲 - 是一個副產品我正在播放音頻文件的方式? – YOO629

+1

可能取決於很多不同的因素,包括手機上的內存和處理器,以及它如何使用JavaScript加載,但我無法想象這種差異與您編寫代碼的方式有什麼關係。如果您的目標是移動設備,最好爲這類應用程序製作原生應用程序。我確定手機的原生API用於加載和播放聲音比手機瀏覽器通過JS加載和播放聲音更有效率。 –