javascript - 如何在不重叠的情况下停止和播放 HTML5 中的多个声音?

标签 javascript html html5-audio

我正在使用 javascript Audio 类在 HTML5 应用程序的后台播放不同的音频文件。
每个音频文件都绑定(bind)到一个按钮的点击事件。

现在我想要实现的是,当单击一个按钮时,当前正在进行的音频应该立即停止,而绑定(bind)到该特定按钮的音频应该开始播放。

我尝试使用pause()mute() 方法,但在这两种情况下,音频重叠的时间非常短(<=1 秒) ).

这个问题有解决办法吗?下面是我目前使用的代码:

 if (sound === null) {
        sound = new Audio("sounds/"+ audioId + ".mp3");
        声音播放();
    }
    别的 {
          声音.暂停();
          sound.src = "声音/"+ audioId + ".mp3";
          声音播放();
    }

最佳答案

你可以使用played()这个函数设置或返回音频/视频是否暂停。

首先,您暂停音频,然后在播放声音后使用 paused() 检查音频是否暂停,而不是在暂停后立即播放音频。

关于javascript - 如何在不重叠的情况下停止和播放 HTML5 中的多个声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20071328/

相关文章:

php - 将 PHP 设置为包含文件

html - 浏览器在工具提示库的底部添加了一种边框样式(奇怪的行为)

html5 音频 - canplay 事件不会在 Safari(Mac 桌面)上触发

html5-audio - 合并两个音频 blob 录音

javascript - React - 2路绑定(bind)文本输入,存储和显示的格式不同

javascript - JS 奇怪的行为

javascript - 无法使用 Angular 获取 HTML textarea 输入文本

javascript - 将我的 HTML 和 CSS 组合在一起?

jquery - HTML5和jQuery:使用音频播放器作为if语句的计时器吗?

javascript - 为什么使用 settimeout 未定义 ajax 值返回?我如何解决它?