2016-01-05 111 views
0

我有以下代碼:播放第二個聲音還重放第一個聲音?

var audiotypes={ 
    "mp3": "audio/mpeg", 
    "mp4": "audio/mp4", 
    "ogg": "audio/ogg", 
    "wav": "audio/wav" 
} 

function ss_soundbits(sound){ 
    var audio_element = document.createElement('audio') 
    if (audio_element.canPlayType){ 
     for (var i=0; i<arguments.length; i++){ 
      var source_element = document.createElement('source') 
      source_element.setAttribute('src', arguments[i]) 
      if (arguments[i].match(/\.(\w+)$/i)) 
       source_element.setAttribute('type', audiotypes[RegExp.$1]) 
      audio_element.appendChild(source_element) 
     } 
     audio_element.load() 
     audio_element.playclip=function(){ 
      audio_element.pause() 
      audio_element.currentTime=0 
      audio_element.play() 
     } 
     return audio_element 
    } 
} 

var clicksound = ss_soundbits('Door.ogg', "Door.mp3"); 
var plopsound = ss_soundbits('Pet.ogg', "Pet.mp3"); 

和:

$("#button1").sequence("click") 
.handle(function() { 
$(".overlay").fadeToggle(); 
clicksound.playclip(); 
$(".overlay .repeat").click(function() { clicksound.playclip(); }); 
}) 
.handleNext("#button2", function() { 
$(".overlay").fadeToggle(); 
plopsound.playclip(); 
$(".overlay .repeat").click(function() { plopsound.playclip(); }); 
}) 

一切運作良好,除了當我點擊#重複按鈕BUTTON2它還可以播放從按鈕1(clicksound)的聲音 - 任何想法爲什麼會這樣?我認爲這可能是因爲它是相同的元素 - 但我也嘗試向#button2上的重複按鈕添加一個類並使用它觸發音頻,但同樣的事情發生 - 開放給想法!

回答

0

您首先必須在播放下一個音頻片段之前先暫停播放前一個音頻片段 - 不知道爲什麼這會起作用,或者爲什麼它應該起作用!