检查音频是否在没有HTML5标签的情况下播放

agu*_*tin 3 javascript html5

我想检测音频是否正在播放,如果是,则不允许再播放它直到完成.播放相同的音频两次会导致音频错误.

HTML

<button onclick="play()">Play</button> Press two times
Run Code Online (Sandbox Code Playgroud)

使用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('-----------------------------');
}
Run Code Online (Sandbox Code Playgroud)

在线:http://jsbin.com/hageko/1/

谢谢.

小智 7

这应该工作:

var sound = new Audio('https://mfaucet.com/images/notification2.mp3');

function play(sound) {
  if(!sound.paused) sound.pause();
  sound.currentTime = 0;
  sound.play();
}
Run Code Online (Sandbox Code Playgroud)
<button onclick="play(sound)">Play</button>Press two times
Run Code Online (Sandbox Code Playgroud)


说明:

  1. 页面加载时,会创建Audio变量,页面可以预先加载mp3.
  2. 当用户点击按钮时,播放功能将:
  3. 检查声音是否正在播放,如果声音正在播放则暂停播放.
  4. 将时间设置为0.
  5. 开始玩