2017-10-19 146 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

相关问题