首页 > 解决方案 > 音频未按预期播放

问题描述

我写了一个通知功能,当条件满足时应该发出警报声,并在确认后停止。但音频不播放,只显示确认框。这是我的代码:

    function notify() {
    const alarm = new Audio('link to remote alarm audio');
    alarm.loop = true;
    alarm.play();
    if (confirm('Pause Audio?')) {
        alarm.pause();
    }
}

更新:错误消息->“DOMException:play() 失败,因为用户没有先与文档交互”

标签: javascript

解决方案


我做了一些研究,发现在没有用户交互的情况下播放音频又是谷歌规则。因此在内部切换到 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);
}

推荐阅读