【发布时间】:2013-12-31 06:05:59
【问题描述】:
我正在更新一个 2.2/2.3 Android 应用程序,该应用程序在 web 视图中使用全屏 HTML5 视频,并尝试在最新的 4.4 平台上实现内联视频。在阅读了新的 Chromium webview 对 HTML5 功能的支持有了很大改进后,我认为 HTML5 视频标签的功能类似于它在 Chrome 浏览器上的功能。骗我。
在努力让内联视频正常工作后,我做到了。正如其他帖子中提到的,对本地文件的内联视频支持仅适用于位于 sdcard 上的外部视频文件。我无法像以前一样从 Assets 文件夹或通过 Raw 资源文件访问我的视频文件。我还必须在我的应用清单中添加 READ_EXTERNAL_STORAGE 权限。这是视频标签和权限标记:
<video id="video1" class="div-centered-content" controls preload="none" src="/sdcard/gizmo.mp4" type="video/mp4"></video>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
以下是我从自己的努力中得出的一些其他结论。如果您不知道,请将这些视为需要正确答案的问题。
Autoplay 和 Loop HTML5 视频标签属性不起作用。
默认播放器控件中的全屏按钮不起作用。
新的 webview 对 src 属性的处理不提供对位于 Res/Raw 文件夹中的资产视频文件和/或资源的自动解析和处理。由于 Assets 和 Resources 压缩在 .apk 中,因此无法直接通过 HTML5 视频的 src 属性加载。
onShowCustomView 处理程序仅在用户触摸播放器控件上的全屏按钮时才会被调用。当通过javascript播放视频时,从一开始就没有明显的方法来拦截和手动处理Android中的视频。我不知道是否有办法通过 javascript 和桥接手动调用 VideoView 并处理它,类似于它在 2.2 中的处理方式。如果这确实可以做到,那么没有示例代码可以说明最好的方法。 (我想要这个选项,因为我可以从我的资产/资源中加载视频文件并提供全屏功能。)
如果有任何关于如何解决上述问题的简明示例,我相信 webview 用户社区会很感激这些信息。仍然无法相信,2 年后,Android webview 团队既未能完全支持 HTML5 视频标签,也未能提供任何可帮助开发人员更轻松地实现包含视频的 webview 应用程序的文档。
【问题讨论】:
-
你如何获取路径(在你的情况下
"/sdcard/gizmo.mp4"从文件 URI?当我使用"file://..."时,我收到“不允许播放文件”错误,所以我想我需要使用相对的..
标签: android html video webview local