我回答这个话题只是为了防止有人读到它,并对结果感兴趣.
在WebView中查看视频元素(video HTML5标记)是可能的,但我必须说我不得不处理它几天.到目前为止,以下是我必须遵循的步骤:
-查找正确编码的视频
-初始化WebView时,设置JavaScript,插件WebViewClient和WebChromeClient.
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框架内播放视频,而不是打开媒体播放器窗口,但这对我来说是次要问题.
我希望这对某些人有帮助,我也感谢任何意见或建议.
Saludos, terrícolas.