WebView and HTML5 amp;lt;videoamp;gt;(WebView和HTML5;视频;)
问题描述
我正在拼凑一个廉价的应用程序,除了其他东西外,它还可以"框住"我们的一些网站……使用WebViewClient
非常简单。直到我点击了视频。
视频是作为HTML5
元素制作的,这些元素在Chrome、iPhone上运行得很好,现在我们修复了编码问题,它在本机浏览器Android
上运行得很好。
现在摩擦:WebView
不喜欢它。完全没有。我可以点击海报图像,但没有任何反应。
搜索,我发现this很接近,但似乎基于一个‘链接’(如在href中...)而不是视频元素。(在视频元素上似乎没有调用onDownloadListener...)
我也看到了对覆盖onShowCustomView的引用,但在视频元素上似乎没有调用...也不应该覆盖UrlLoading..
我宁可不谈"从服务器提取XML,在应用程序中重新格式化它"。通过将故事布局保留在服务器上,我可以更好地控制内容,而不会强迫人们不断更新应用程序。因此,如果我能说服WebView像处理本机浏览器一样处理标记,那将是最好的。
我显然漏掉了一些明显的东西。但我不知道是什么。
推荐答案
我回答此主题只是为了防止有人阅读并对结果感兴趣。 在WebView中查看视频元素(视频HTML5标签)是可能的,但我必须说我不得不处理它几天。到目前为止,我必须遵循以下步骤:
-查找正确编码的视频
-在初始化WebView时,设置WebViewClient和WebChromeClient的JavaScript、插件。
url = new String("http://broken-links.com/tests/video/"); mWebView = (WebView) findViewById(R.id.webview); mWebView.setWebChromeClient(chromeClient); mWebView.setWebViewClient(wvClient); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.getSettings().setPluginState(PluginState.ON); mWebView.loadUrl(url);
-处理WebChromeClient对象中的onShowCustomView。
@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
super.onShowCustomView(view, callback);
if (view instanceof FrameLayout){
FrameLayout frame = (FrameLayout) view;
if (frame.getFocusedChild() instanceof VideoView){
VideoView video = (VideoView) frame.getFocusedChild();
frame.removeView(video);
a.setContentView(video);
video.setOnCompletionListener(this);
video.setOnErrorListener(this);
video.start();
}
}
}
-处理视频的onCompletion和onError事件,以便返回Web视图。
public void onCompletion(MediaPlayer mp) {
Log.d(TAG, "Video completo");
a.setContentView(R.layout.main);
WebView wb = (WebView) a.findViewById(R.id.webview);
a.initWebView();
}
但现在我应该说还有一个重要的问题。我只能玩一次。第二次单击视频调度器(海报或某个播放按钮)时,它什么也不起作用。
我还希望在WebView框架内播放视频,而不是打开媒体播放器窗口,但这对我来说是次要问题。
我希望这对某些人有帮助,我也感谢任何意见或建议。
您好!
这篇关于WebView和HTML5;视频;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:WebView和HTML5;视频;
基础教程推荐
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01