WebView播放html5视频和全屏。

来源:互联网 发布:python 哈希表 编辑:程序博客网 时间:2024/06/11 20:11
首先需要在Activity或Applictaion中开启硬件加速。在Activity或Appliction加入
 android:hardwareAccelerated="true"
开启硬件加速。开启后就可以播放视频,不过如果要播放全屏还得加入以下代码。

wvBrowser.getSettings().setJavaScriptEnabled(true);// 启用jswvBrowser.setWebChromeClient(chromeClient);WebChromeClient.CustomViewCallback mCallBack = null;View videoView;WebChromeClient chromeClient = new WebChromeClient() {public void onShowCustomView(View view, CustomViewCallback callback) {// 全屏是调用的方法if (videoView != null) {callback.onCustomViewHidden();return;}if (listener != null) {listener.onFullVideo();}flVideo.setVisibility(VERTICAL);wvBrowser.setVisibility(GONE);flVideo.addView(view);videoView = view;mCallBack = callback;};public void onShowCustomView(View view, int requestedOrientation, CustomViewCallback callback) {onShowCustomView(view, callback);};public void onHideCustomView() {// 关闭全屏if (videoView == null) {return;}if (listener != null) {listener.onOutFullVideo();}mCallBack.onCustomViewHidden();flVideo.removeAllViews();flVideo.setVisibility(GONE);wvBrowser.setVisibility(VERTICAL);videoView = null;};};
关闭全屏时调用
chromeClient.onHideCustomView();
全屏的操作就是调用onShowCustomView 将播放的视频View传给应用将这个view加入到某个容器中显示就可以了。
注意:某些手机全屏后按Back不会调用onBackPressed,而会调用onHideCustomView退出全屏,所以点击Back的时候注意判断是否退出全屏
如果不加这段代码如果正在播放视频退出Activity后声音会继续播放。
/** * 暂停播放视频 * @author yubin * @date 2015-1-28 */public void onPause() {try {wvBrowser.getClass().getMethod("onPause").invoke(wvBrowser, (Object[]) null);} catch (IllegalAccessException e) {e.printStackTrace();} catch (IllegalArgumentException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();} catch (NoSuchMethodException e) {e.printStackTrace();}}



1 1
原创粉丝点击