我想检测音频是否正在播放,如果正在播放,则在播放结束前不允许再次播放。播放相同的音频两次会导致音频错误。
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('-----------------------------');
}
谢谢。
最佳答案
这应该有效:
var sound = new Audio('https://mfaucet.com/images/notification2.mp3');
function play(sound) {
if(!sound.paused) sound.pause();
sound.currentTime = 0;
sound.play();
}
<button onclick="play(sound)">Play</button>Press two times
解释:
- 当页面加载时,会创建 Audio 变量,页面可以预先加载 mp3。
- 当用户点击按钮时,播放功能将:
- 检查声音是否正在播放,如果是则暂停。
- 将时间设置为 0。
- 开始演奏
关于javascript - 检查音频是否在没有 HTML5 标签的情况下播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28579701/