javascript - 有没有办法在播放后暂停音频?
问题描述
我试图让一个元素在使用音频对象方法单击时播放/暂停声音:audio.play()
和audio.pause()
,但我收到此错误:
“未捕获(承诺中)DOMException:play() 请求被对 pause() 的调用中断。”
有没有一种简单的方法可以在没有任何库的情况下解决这个问题?
document.querySelector(".head-container").addEventListener("click", function () {
var audio = new Audio('./sounds/kick-bass.mp3');
audio.play();
if (!audio.paused) {
audio.pause();
}
});
更新,解决方案是从事件侦听器中创建音频对象,我的错。如果您希望重新启动声音,也可以对任何感兴趣的人使用 audio.load() 而不是 audio.paused() 。
var audio = new Audio('./sounds/sound.mp3');
document.querySelector(".head-container").addEventListener("click", function () {
if (audio.paused) {
audio.play();
}
else {
audio.pause()
/*audio.load(); */
}
解决方案
我认为你的条件语句有问题。为什么不尝试使用
...
var audio = new Audio('./sounds/kick-bass.mp3');
if(!audio.paused) {
audio.pause();
} else {
audio.play();
}
推荐阅读
- oracle - 为什么 Alter Table 在 Java 中不能使用 executeQuery() 工作?
- python - 将具有数字和名称的列拆分为两个不同的列“ID”和“名称”
- r - 在 R 4.0 中执行 NA 替换时出错
- python - render() 在pygame中没有关键字参数错误
- spring-webflux - 当反应式存储库返回结果以及为空时运行逻辑?
- javascript - Javascript 复制功能不适用于隐藏的输入类型
- mysql - MySQL SUBSTR LOCATE 多搜索字符串
- regex - 验证我的 repo 它实际上是 Go 中的 github repo URL
- windows - 使用蜂窝热点时,npm 无法访问 Internet
- javascript - JavaScript 函数:成绩分布