【发布时间】:2012-02-18 11:02:19
【问题描述】:
我有一个应用程序,它在 WebView 中显示带有视频元素的 HTML5 页面。我花了一段时间才弄清楚如何让视频正常工作,但最后我成功地在三星 Galaxy Tab(Android 3.1)上播放嵌入在 WebView 中的视频。我为视频标签使用了以下代码:
<video controls poster="img/poster.jpg" height="240" width="360">
<source src="video/BigBuck.m4v">
<source src="video/BigBuck.theora.ogv" type="video/ogg">
<source src="video/BigBuck.webm" type="video/webm">
HTML5 video not supported.
</video>
视频元素有多个来源,现在我尝试在视频开始播放之前捕获选定的视频来源(和格式)。当我点击播放按钮时,我看到视频文件的 HTTP 请求到达存储视频文件的 Web 服务器,但我没有成功在应用端拦截此请求。
我查看了几种方法来查看视频文件的请求是否通过那里,但我没有看到它通过其中任何一个。
- 在我的
WebViewClient中的shouldOverrideUrlLoading(WebView view, String url)中,只有初始的HTML5 页面请求通过。 - 在
shouldInterceptRequest (WebView view, String url)在我的WebViewClient中,我看到只传递了初始HTML5 页面请求和对视频海报图像的请求,而不是视频文件。 -
我的
WebChromeClient中的onShowCustomView(View view, CustomViewCallback callback)仅在视频已经播放时单击HTML5 页面上的全屏控制按钮时调用,但在我单击播放按钮时不会调用。 (这种方法的实际目的是什么?)
是否有人对我可以捕获对视频文件的请求的另一种方法提出建议,或者谁能解释我单击视频元素上的播放按钮时实际发生的情况?
【问题讨论】:
-
您能否发布您用于视频标签的代码。我最近处理了这个问题,
shouldOverrideUrlLoading(WebView view, String url)为我工作(虽然在 Gingerbread 中)。
标签: android video webview html5-video android-webview