我希望能够检测音频是否正在播放,如果正在播放,则不允许再次播放,直到其完成。多次播放相同的音频会导致音频错误。
HTML
<button onclick="play()">Play</button> Press two times
Javascript:
function play() {
var sound = new Audio('https://mfaucet.com/images/notification2.mp3');
console.log('Paused: ' + sound.paused);
console.log('Ended: ' + sound.ended);
console.log('Current time: ' + sound.currentTime);
sound.play();
console.log('-----------------');
console.log('Paused: ' + sound.paused);
console.log('Ended: ' + sound.ended);
console.log('Current time: ' + sound.currentTime);
console.log('-----------------------------');
}
在线地址:http://jsbin.com/hageko/1/
谢谢。
sound.paused
对你没用?只需检查它是否返回 true/false,并相应调用play()
函数即可。 - Vivek Pradhanplay()
方法时都创建了一个新的实例。 - somethingheresound
对象每次都不同,你没有在每次调用play()
时更改它,而是每次创建一个新实例并使用默认值。 - somethinghere