2016-01-05 2 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 он также воспроизводит звук из button1 (clicksound) - любой идея, почему это было бы? Я думал, что это может быть потому, что это тот же самый элемент, но я также попытался добавить класс к кнопке повтора на # button2 и использовать это для запуска звука, но то же самое происходит - открывать идеи!

ответ

0

Прежде чем играть в следующий, вы должны приостановить предыдущий аудиоклип - не знаете, почему это работает, или почему это должно сработать!

Смежные вопросы