2017-10-19 142 views
0

我想先播放任何先前播放的音頻,然後再播放新的音頻剪輯。這是爲了防止多次播放音頻文件的元素上出現雙重剪輯。停止正在播放的任何當前音頻

我試着暫停並將當前時間設置爲0,但都沒有工作。什麼是正確的方法來做到這一點?

 $(".playAudio").on('click touchstart', function() { 
      var audio = document.createElement('audio'); 
      audio.setAttribute('src', $(this).attr('data-audio')); 
      audio.pause(); 
      audio.currentTime = 0; 
      audio.play(); 
     }); 

回答

1

如果存在,您可以暫停audio片段。

下面的代碼應該工作。

let audio; 

$(".playAudio").on('click touchstart', function() { 

    if(audio){ 
    audio.pause(); 
    } 

    audio = document.createElement('audio'); 
    audio.setAttribute('src', $(this).attr('data-audio')); 
    audio.currentTime = 0; 
    audio.play(); 
}); 
+0

遺憾的是它不工作:https://jsfiddle.net/1sodbv57/ – block14

+1

變量定義'讓音頻;'應該是函數之外。目前它在開始的時候被創建,在函數結束時被丟棄。 – ikkuh

+0

@PaulFitzgerald ikkuh是正確的。如果您更新答案,我會將其標記爲正確。 – block14

相關問題