【发布时间】:2021-05-15 19:09:50
【问题描述】:
我写了一个通知函数,当条件满足时应该发出警报声,并在确认后停止。但音频不播放,只显示确认框。这是我的代码:
function notify() {
const alarm = new Audio('link to remote alarm audio');
alarm.loop = true;
alarm.play();
if (confirm('Pause Audio?')) {
alarm.pause();
}
}
更新:错误消息 ->“DOMException: play() 失败,因为用户没有先与文档交互”
【问题讨论】:
-
打开浏览器控制台并检查错误。如果音频来自另一个域,您可能会遇到某种 CORS 错误。
-
您好,感谢您的回复。我已启用 CORS,控制台上没有错误
-
如果不可能,发布 tge 音频 url,任何其他 url 也失败
-
音频文件大小约为 1.5MB。会不会是问题?
-
尝试将
alarm.play()替换为alarm.autoplay = true并暂时删除if 确认。它应该在加载时播放。还要检查您的浏览器是否阻止音频再现,大多数浏览器都会阻止自动播放的音频。最明显但可能的情况是,检查您的浏览器是否正在复制任何音频。
标签: javascript