如何防止错误“未捕获(承诺中)DOMException:播放()请求被暂停()调用中断。”?

Posted

技术标签:

【中文标题】如何防止错误“未捕获(承诺中)DOMException:播放()请求被暂停()调用中断。”?【英文标题】:How do I prevent the error "Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause()."? 【发布时间】:2016-05-10 10:38:51 【问题描述】:

我在 chrome 浏览器中遇到了这个问题。当我单击任何音频时,它会引发异常。我的音频标签在一个循环中,当我点击音频或使用ajax刷新它时,就会抛出异常。

【问题讨论】:

【参考方案1】:

当我的media 未加载时,我遇到了同样的错误。检查这些:

    您的media 具有正确的src。 您的media 在您播放之前已加载。

【讨论】:

【参考方案2】:

我不知道这是否会帮助你,但我仍然留下我的评论,所以也许它会帮助其他人。 我有类似的问题,@dighan 在 bountysource.com/issues/ 上提出的解决方案为我解决了。

所以这是解决我问题的代码:

var media = document.getElementById("YourVideo");
const playPromise = media.play();
if (playPromise !== null)
    playPromise.catch(() =>  media.play(); )

只需在 document.ready 中添加即可

它仍然会向控制台抛出错误,但至少视频正在播放:) 我认为这也适用于音频。

【讨论】:

请不要对多个问题添加相同的答案。回答最好的一个并将其余的标记为重复。见Is it acceptable to add a duplicate answer to several questions? @FelixSFD 好的,不会再这样做了。【参考方案3】:

我最近注意到我的一个网站上发生了这种情况,该网站以前没有任何问题,而且根本没有改变。这似乎是 Chrome 中的一个已知错误——在此处查看问题跟踪器:https://bugs.chromium.org/p/chromium/issues/detail?id=593273

在 Chrome 团队修复此问题之前,似乎无法阻止该错误。

【讨论】:

这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review @FishBasketGordo 感谢您的建议。目前似乎没有解决 OP 问题的方法——我已经更新了我的答案以反映这一点。我猜你的评论是一个普通的回应,但我是如何要求 OP 澄清的? 这确实回答了 OP 的问题,“你不能”并不是任何人都希望得到的答案。

以上是关于如何防止错误“未捕获(承诺中)DOMException:播放()请求被暂停()调用中断。”?的主要内容,如果未能解决你的问题,请参考以下文章

如何防止重试sidekiq上的某些异常/错误

输入错误密码时出现验证错误时如何防止角色更改

如何防止错误:这种旧式功能

如何防止“没有这样的模块'Alamofire'”作为Xcode中的错误?

如何防止 Apollo 客户端 useQuery 中的错误传播?

如何防止超出范围的日期时间值错误?