【发布时间】:2019-10-29 07:37:13
【问题描述】:
无论我做什么,在尝试播放声音时都会收到一条错误消息:
未捕获(承诺)DOMException。
在 Google 上搜索后,我发现如果我在用户对页面进行任何操作之前自动播放音频,它应该会出现,但对我来说并非如此。我什至这样做了:
componentDidMount() {
let audio = new Audio('sounds/beep.wav');
audio.load();
audio.muted = true;
document.addEventListener('click', () => {
audio.muted = false;
audio.play();
});
}
但是消息仍然出现并且声音没有播放。我该怎么办?
【问题讨论】:
-
服务器上是否存在“sounds/beep.wav”文件?你确定相对路径正确吗?
-
如果将前三行的语句放在事件处理程序的开头,错误消息是否仍然存在?如果您删除将 audio.play() 放在 componentDidMount 末尾的事件处理程序,它是否仍然存在?
-
文件存在于“服务器”上。那是我自己的电脑,我有它在 /src/sounds 文件夹和 /src 中的 App.js。我不知道它是否是重复的。我不是要自动播放,它应该在用户点击后播放。虽然我也试过了,但我可以捕捉到错误,但我该怎么办?
-
错误仍然存在于
componentDidMount() { document.addEventListener("click", () => { let audio = new Audio("sounds/beep.wav"); audio.load(); audio.play(); }) }
标签: javascript reactjs