在 Android HTML5 播放器中开始播放需要用户手势

User gesture required to start playback in Android HTML5 player

我在 android 上使用 HTML5 视频标签,有时 chrome 浏览器说它需要明确的用户 gesture/click 才能开始播放:

Failed to execute 'play' on 'HTMLMediaElement': API can only be initiated by a user gesture

我知道这是 Android 中的一个已知问题,但我不明白为什么有时它会自动播放,而在其他情况下需要用户操作!

我正在使用带有自动播放选项的视频标签。

Auto-play 自 Android SDK 17 起被禁用,以避免糟糕的视频播放用户体验(即不希望的播放、不希望的数据使用)。通常视频应该只在用户操作后播放。这是当今 Android 和 iOS 的推荐行为。

但是,如果确实需要,您可以将 setMediaPlaybackRequiresUserGesture 设置为 false 以启用 auto-play。记得查看SDK版本,因为AndroidSDK 17.

之前没有这个选项
int SDK_INT = android.os.Build.VERSION.SDK_INT;
    if (SDK_INT > 16) {
        engine.getSettings().setMediaPlaybackRequiresUserGesture(false);
}

这里对 Google 关于自动播放的决定进行了长时间的讨论和辩论: http://chromium-bugs.chromium.narkive.com/cW5IXVgj/issue-178297-in-chromium-android-chrome-does-not-allow-applications-to-play-html5-audio-without-an

截至 2017 年 1 月 24 日

如果视频静音,

HTML5 视频标签可以在 android 上自动播放。您需要在标记中包含 muted 和 autoplay 属性以使其按预期工作。

这是文章的 link:Autoplay on Chrome for Android as of version 53