2013-05-22 76 views
0

我試圖在點擊按鈕後播放隨機聲音效果。基本上,我創建了一個如下所示的聲音陣列。我的目標是,當用戶點擊按鈕時,我想從數組中隨機選擇一個聲音,這隻有在頁面刷新後纔有效。但是當用戶在第二次或第三次點擊按鈕時,它將返回只是一次又一次地返回相同的結果。陣列中的隨機聲音Javascript

function sound_return(){ 
    var sound_array = ["sound1.mp3", "sound2.mp3"]; 
    var sound = sound_array[Math.floor(Math.random() * sound_array.length)]; 
     return sound; 
    } 

     var audioElement = document.createElement('audio'); 
     audioElement.setAttribute('src', 'sound/'+sound_return()); 
     audioElement.load() 
     $.get(); 
     audioElement.addEventListener("load", function() { 
     audioElement.play(); 
     }, true); 

    $('#sound').click(function(event){ 
      event.preventDefault(); 
      audioElement.play();  
    }); 

回答

0

你需要在每一個設置音頻源和負載點擊它

function sound_return(){ 
    var sound_array = ["sound1.mp3", "sound2.mp3"]; 
    var sound = sound_array[Math.floor(Math.random() * sound_array.length)]; 
    return sound; 
} 

var audioElement = document.createElement('audio'); 
audioElement.addEventListener("load", function() { 
    audioElement.play(); 
    btn.hide(); 
}, true); 
audioElement.addEventListener("ended", function() { 
    btn.show(); 
}, true); 


var btn = $('#sound').click(function(event){ 
    event.preventDefault(); 
    audioElement.setAttribute('src', 'sound/'+sound_return()); 
    audioElement.load(); 
}); 
+0

是我的錯,這是工作。但是,我遇到了不同的問題。與以前不同的是,即使音頻尚未完成,用戶現在也可以通過反覆點擊按鈕來從頭播放音頻。 – user2310422

+0

在這種情況下,您需要在音頻開始播放時禁用該按鈕,並在播放結束後啓用該按鈕 –

+0

但是,一旦音頻仍在播放或完成時,我該如何檢測? – user2310422