gpt4 book ai didi

javascript - 谷歌浏览器在播放音频时未捕获( promise )DOMException

转载 作者:搜寻专家 更新时间:2023-11-01 05:03:14 26 4
gpt4 key购买 nike

Chrome 会阻止自动播放音频/视频。我找到了自动播放视频的解决方案,但我的用例需要自动播放音频。这是我的代码:

let audio = new Audio('music/test.mp3'); audio.play(); audio.loop = true;

由于新政策,这会导致 Chromium 浏览器出现“未捕获( promise )DOMException”。

最佳答案

您收到未捕获的异常,因为您没有处理错误。

https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/play

Audio 是一个HTMLMediaElement 对象,play() 方法返回一个promise。因此,我建议处理该错误。

var promise = audio.play();
if (promise) {
//Older browsers may not return a promise, according to the MDN website
promise.catch(function(error) { console.error(error); });
}

可能出现以下两种错误之一:

NotSupportedError

这意味着浏览器不支持音频源(可能是由于音频格式)

NotAllowedError

这就是我怀疑你触发的那个。这意味着用户需要显式触发 audio.play(),因此该方法仅在响应用户生成的事件(例如点击事件)时可用。

文档:

The user agent (browser) or operating system doesn't allow playback of media in the current context or situation. This may happen, for example, if the browser requires the user to explicitly start media playback by clicking a "play" button.

关于javascript - 谷歌浏览器在播放音频时未捕获( promise )DOMException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54719283/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com