首先需要在Activity或Applictaion中开启硬件加速。在Activity或Appliction加入
注意:某些手机全屏后按Back不会调用onBackPressed,而会调用onHideCustomView退出全屏,所以点击Back的时候注意判断是否退出全屏
如果不加这段代码如果正在播放视频退出Activity后声音会继续播放。
android:hardwareAccelerated="true"
开启硬件加速。开启后就可以播放视频,不过如果要播放全屏还得加入以下代码。
wvBrowser.getSettings().setJavaScriptEnabled(true);// 启用js
wvBrowser.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();
}
}