Uncaught (in Promise) DOMException: play() 只能由用户手势启动
Posted
技术标签:
【中文标题】Uncaught (in Promise) DOMException: play() 只能由用户手势启动【英文标题】:Uncaught (in Promise) DOMException: play() can only be initiated by a user gesture 【发布时间】:2016-10-24 23:27:37 【问题描述】:我在我们的 html 5 javascript 视频播放器实现中看到了以下错误,仅在 android + Chrome Mobile 上:
Uncaught (in promise) DOMException: play() 只能由用户手势启动
这个错误的原因是什么,避免它的正确方法是什么?
【问题讨论】:
Google Chrome Uncaught (in promise) DOMException while playing AUDIO的可能重复 【参考方案1】:您是否尝试实现某种自动播放功能?自动播放已在较新版本的 Android 上禁用。如果你好奇的话,这里有一个关于自动播放能力的长时间讨论的问题线程:http://chromium-bugs.chromium.narkive.com/cW5IXVgj/issue-178297-in-chromium-android-chrome-does-not-allow-applications-to-play-html5-audio-without-an
您可以通过在不同的事件上触发 play() 来使其工作,例如在按钮单击或视频加载时。
【讨论】:
你能提供一个例子吗? android 上的视频加载自动播放?【参考方案2】:如果您使用的是网络视图,这将起作用。
webviewSettings.setMediaPlaybackRequiresUserGesture(false);
【讨论】:
【参考方案3】:我也面临同样的问题。最终问题得到解决。 Webview 高度更新为 wrap_content 到 match_parent。 添加以下代码:
webviewSettings.setMediaPlaybackRequiresUserGesture(false);
现在错误消失了,url 加载成功。希望它对某人有用。
【讨论】:
以上是关于Uncaught (in Promise) DOMException: play() 只能由用户手势启动的主要内容,如果未能解决你的问题,请参考以下文章
解决Uncaught (in promise) reason的问题
Uncaught (in Promise) DOMException: play() 只能由用户手势启动
解决Uncaught (in promise) reason的问题
Uncaught (in promise):消息端口在收到响应之前关闭
vue控制台报 Uncaught (in promise) TypeError:
Uncaught (in promise) TypeError: Cannot set properties of null (setting 'innerText') in OpenWetherMa