如何防止错误“未捕获(承诺中)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:播放()请求被暂停()调用中断。”?的主要内容,如果未能解决你的问题,请参考以下文章
如何防止“没有这样的模块'Alamofire'”作为Xcode中的错误?