WebView 中的 Android HTML5 视频

Posted

技术标签:

【中文标题】WebView 中的 Android HTML5 视频【英文标题】:Android HTML5 video in WebView 【发布时间】:2015-06-16 15:48:14 【问题描述】:

我正在尝试在我的 WebView 应用中播放 html5 视频。它可以在我测试过的每台运行 android 5.x 的设备上按预期工作,但 不能 在任何运行 4.x 的设备上工作,这意味着它基本上不能工作。

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

为了在您的应用程序中支持内嵌 HTML5 视频,您需要 开启硬件加速,并设置 WebChromeClient。

AndroidManifest.xml

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

MyFragment.java

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

还有没有在开发人员参考中记录的其他我需要做的事情?

【问题讨论】:

查看gist.github.com/Offbeatmammal/3718414 以获得工作示例 【参考方案1】:

问题是 WebKit 不能很好地处理视频的重定向。网页中有来自我公司专有 API 的视频。单击视频时,调用会转到我们的 API,然后重定向到 Amazon S3 以获取实际的视频文件。然后,WebKit 会按照您的预期尝试“分块”视频(而不是预加载整个内容)。但是,S3 已经这样做了,这会导致播放完全中断。

Android 5.x 运行良好,因为 WebView 从 4.4 开始基于 Chromium,它可以适当地处理重定向。

【讨论】:

以上是关于WebView 中的 Android HTML5 视频的主要内容,如果未能解决你的问题,请参考以下文章

android webview怎么加载ionic的html5

Android WebView html5 视频强制全屏

HTML5 Canvas 支持和 Android Webview

在 Android WebView 中拦截 HTML5 视频源请求

Android - 应用更新后 WebView html5 本地存储不持久

Android webview html5地理定位