如果已经播放,请停止

问题描述:

我需要一些帮助实现.playing()方法,当我的playSound函数被调用时,我想停止当前正在播放的任何内容,并播放新请求的声音,这里是我的示例,不是它的每一个所谓的时间停止:如果已经播放,请停止

function playSound(audio) { 
     var playing; 
     var sound = new Howl({ 
     src: ['assets/sound/voice/' + audio], 
     autoplay: false, 
     volume: 0.9, 
     onplay: function() { 
      playing = true; 
     }, 
     onend: function() { 
      playing = false; 
     }   
     }); 

     if(playing) { 
     sound.stop(); 
     } else {    
     sound.play();  
     } 
    } 

的解决方案,最终,是创建“声音”的全局变量:

var sound = null; 
function playSound(audio) { 
    //check if sound is null, if not stop previous sound and unload it 
    if (sound != null) { 
     sound.stop(); 
     sound.unload(); 
     sound = null; 
    } 
    sound = new Howl({ 
     src: ['assets/sound/voice/' + audio] 
    }); 
    sound.play(); 
}