javascript - 音频未按预期播放
问题描述
我写了一个通知功能,当条件满足时应该发出警报声,并在确认后停止。但音频不播放,只显示确认框。这是我的代码:
function notify() {
const alarm = new Audio('link to remote alarm audio');
alarm.loop = true;
alarm.play();
if (confirm('Pause Audio?')) {
alarm.pause();
}
}
更新:错误消息->“DOMException:play() 失败,因为用户没有先与文档交互”
解决方案
我做了一些研究,发现在没有用户交互的情况下播放音频又是谷歌规则。因此在内部切换到 Chrome 之后添加了 1 秒超时,以便为音频文件提供足够的时间来加载。
使用此代码运行 chrome -> chrome.exe --autoplay-policy=no-user-gesture-required
function notify() {
const alarm = new Audio('https://audio-link');
alarm.loop = true;
alarm.play();
setTimeout(() => {
if (confirm('Do you see that?')) {
alarm.pause();
}
}, 1000);
}
推荐阅读
- python-3.x - 通过 pyomo 为 Baron 求解器设置优先级分支
- php - TYPO3 - TCA - 输入(inputLink)输出标题?
- android - 应用程序图标在*任务菜单*中没有更改?
- database - 在 Oracle 中删除一列时,多列索引(复合)会发生什么情况
- django - Django将已知的确切字符串作为url参数传递
- php - 使用 PhpStorm 和 Xdebug 调试 Symfony REST API
- scala - 无法声明采用零参数的函子类型?
- javascript - Jquery输入掩码在前缀后设置起始输入点
- java - 如何遍历arrayList中的连续对
- sql - SQL SELECT 语句