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

标签 javascript html

我想检测音频是否正在播放,如果正在播放,则在播放结束前不允许再次播放。播放相同的音频两次会导致音频错误。

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/

谢谢。

最佳答案

这应该有效:

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


解释:

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

关于javascript - 检查音频是否在没有 HTML5 标签的情况下播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28579701/

相关文章:

Javascript:嵌套循环?

javascript - AngularJs 自动完成几乎可以工作

javascript - 无法获得 Angularjs 在 html 页面中显示为表达式的结果

html - Bootstrap 网格填充页面宽度和高度

html - h2 的 IE8 渲染问题

html - 在 ggplot 标题中使用 HTML 元素

javascript - 向右拖动元素会导致原始元素向左移动

html - 文本在 HTML 输入中未正确对齐。我的代码要更改什么?

html - :nth-child() pseudoclass isn't working in list

javascript - 如果我有 rowId,如何检查 jqgrid 行是否展开或折叠?