javascript - 如何捕获自动播放的DOMException?

标签 javascript exception audio promise

当我尝试在用户与页面进行交互之前运行Audio.play()时,它将引发错误:

Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first


如何捕获异常,以免乱扔控制台日志?我想尝试以编程方式加载音频并清除错误,但是默认的JavaScript try / catch不能成功应用。

最佳答案

来自this post:

In general, the advice for web authors when calling HTMLMediaElement.play(), is to not assume that calls to play() will always succeed, and to always handle the promise returned by play() being rejected.


因为play()返回一个promise,所以我们可以链接.catch()调用来处理错误:
Audio.play().catch(error => {
  // Autoplay was blocked. Do something
})

关于javascript - 如何捕获自动播放的DOMException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64434981/

相关文章:

javascript - 浏览器如何加载 Javascript 资源?

java - 在java中创建异常列表

javascript - 困惑于如何在蛇游戏中实现Javascript音频?

ios - 使用 AVPlayer 播放音频在后台不起作用

javascript - 图像未显示在表格中

Javascript 动态调节

c++ - 如果 QObject 与信号和插槽一起使用,则替换异常

java - 即使我没有从 arraylist 中删除任何内容,foreach 循环中也会出现 ConcurrentModificationException

javascript - 使用网络音频 api 分析来自麦克风的输入(将 MediaStreamSource 转换为 BufferSource)

javascript - jQuery 通过 ID 查找元素,如果存在则删除它