javascript - Safari:更改源然后直接调用 play 会引发 DOMError aborterror

标签 javascript audio safari promise playback

当更改音频源然后立即调用播放时,我收到一个 DOMError 说操作已中止。所以我的播放 promise 被拒绝但音频播放正常。

这似乎是一个新问题(可能是从 12 月开始?),只附加在我的 safari 上。目前的解决方法是在调用 play() 之前稍等片刻,或者等待像加载数据这样的事件。

有人知道这个问题吗?解决它的正确方法是什么?

最佳答案

Play 方法是一个 promise ,因此您可以捕获错误并正确处理它。

video.play().catch((error) => {
 console.log("Error: " + error);
});

关于javascript - Safari:更改源然后直接调用 play 会引发 DOMError aborterror,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48538766/

相关文章:

javascript - JQuery 从嵌套标签中抓取内容

javascript - 如果不存在,如何有效地将元素添加/推送到数组

android - 如何将数据从一个AsyncTask发送到另一个AsyncTask?[视频系统]

audio - FFMPEG 音频流到 icecast 让媒体播放器在每首歌曲后停止

css - Windows 版 Safari 5.0.5 中 <selects> 的宽度

javascript - JQuery Ajax 返回成功但 url 参数不存在

javascript - 如何将监听器添加到音频元素以连续播放

ios - 在 iOS Safari 上播放 WAV 文件

safari - 仅使用 CSS3 显示/隐藏元素——为什么这行不通?

javascript - 将模板加载到 View AngularJS 后执行 javascript