【问题标题】:Uncaught (in Promise) DOMException: play() can only be initiated by a user gestureUncaught (in Promise) DOMException: play() 只能由用户手势启动
【发布时间】:2016-10-24 23:27:37
【问题描述】:

我在我们的 HTML 5 JavaScript 视频播放器实现中看到了以下错误,仅在 Android + Chrome Mobile 上:

Uncaught (in promise) DOMException: play() 只能由用户手势启动

这个错误的原因是什么,避免它的正确方法是什么?

【问题讨论】:

标签: javascript android google-chrome dom


【解决方案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 加载成功。希望它对某人有用。

    【讨论】:

      猜你喜欢
      • 2016-12-12
      • 2021-07-13
      • 2017-11-13
      • 2021-11-05
      • 2018-01-27
      • 2021-03-04
      • 2020-09-27
      • 2015-12-07
      • 2021-05-21
      相关资源
      最近更新 更多