在Android WebView中使用HTML5的video标签播放本地视频

因为毕设需要,这段时间就一直在做基于HTML5 video定制的播放器,因为开发和测试过程也一直都是配合Nexus7的Chrome进行测试,所以本以为Android上应该会是最为顺利没有问题的,但是在经过PhoneGap封装测试时,发现在iOS上完全正常,但是在Android上反而没办法播放了。

问题出现在用Android的Webview在播放应用assets中视频的时候,但我尝试把视频地址改为互联网地址的时候就正常了。

经过反复测试,发现使用HTML5访问应用资源目录的时候会存在Android权限限制的问题,不过访问sdcard是能够正常使用的,也就是地址是:file://sdcard/ 下的就可以正常使用了。(对于远程文件下载到本地后播放直接下载到sdcard自己的目录即可;如果原先视频文件已经在assets目录的,则可以在启动WebView前复制到sdcard)

上述测试的环境为 Nexus 7 (with Android 4.4.2) / Android 4.4 SDK

PS:

网络上还有说HTML5播放视频需要在AndroidManifest.xml开启硬件加速

<application android:hardwareAccelerated="true"

我用PhoneGap的时候默认生成的就已经是开启的了,就没作另外的测试。

《在Android WebView中使用HTML5的video标签播放本地视频》上有5条评论

    1. 本文中描述的场景是基于WebView情况下,在网页中使用 video 标签进行本地视频加载,所以视频的加载和播放的部分就是通过网页中的 video 标签实现,并且在Webview中播放,只是这当中涉及到Android的Webview本地访问的权限问题(文章写作的时间点的情况),并不涉及到原生的部分。

    1. 在本文撰写的时间点 对应的安卓版本 file: 开头的虽然处于安全原因是被禁止的
      但是 file://sdcard 下是可以访问的 这个情况现在是否还适用 并未作确认

      当然,合理和推荐的做法当然并不是直接使用 file 来播放本地,但这已经不在本文的讨论范围

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注