Android HTML5 Web 视图中的视频

Android HTML5 video in WebView

我正在尝试在我的 WebView 应用程序中播放 HTML5 视频。它在我测试过的每个设备上都按预期工作 运行 Android 5.x,但 在任何设备上工作 运行 4.x,这意味着它根本不起作用。

我已经开启了硬件加速,并且设置了WebChromeClientas the docs say to do,但是视频还是播放不了。

In order to support inline HTML5 video in your application, you need to have hardware acceleration turned on, and set a WebChromeClient.

AndroidManifest.xml

<application>
    android:hardwareAccelerated="true"
    ... 
</application>

MyFragment.java

webView = new WebView(getActivity(), null, this);
webView.setWebChromeClient(new WebChromeClient());

开发者参考资料中没有记录我需要做的其他事情吗?

问题是 WebKit 无法很好地处理视频的重定向。网页中有来自我公司专有 API 的视频。单击视频时,调用转到我们的 API,然后重定向到 Amazon S3 以获取实际的视频文件。然后,WebKit 会尝试 "chunk" 视频(而不是像您期望的那样预加载整个视频)。但是S3已经做到了,导致播放完全卡顿

Android 5.x 工作正常,因为 WebView 基于从 4.4 开始的 Chromium,它可以适当地处理重定向。