怎么在webview中正常播放html的视频

有点小激动 2016-02-01 04:17:54

红框内为html的视频 在小屏手机里webview只显示了一般的htnl文件 我现在是想让html的视频能够点击全屏播放
在网上查的例子 添加的代码但是不显示

private View xCustomView;
@ViewInject(R.id.video_view)
private FrameLayout videoview;// 全屏时视频加载view
@ViewInject(R.id.study_details_video)
WebView study_details_video;
private WebChromeClient.CustomViewCallback xCustomViewCallback;

private void palyVideo(String zipPath) {
finshBtn.setVisibility(View.INVISIBLE);
againBtn.setVisibility(View.INVISIBLE);
i = Integer.parseInt(learningCoursewareDetailsBeanList.get(0).getLearningTime());
handler.postDelayed(runnable, time);
study_details_video.getSettings().setJavaScriptEnabled(true);
study_details_video.getSettings().setPluginState(WebSettings.PluginState.ON);
study_details_video.getSettings().setPluginsEnabled(true);//可以使用插件
study_details_video.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
study_details_video.getSettings().setAllowFileAccess(true);
study_details_video.getSettings().setBuiltInZoomControls(true);// 隐藏缩放按钮
study_details_video.getSettings().setDefaultTextEncodingName("UTF-8");
study_details_video.getSettings().setUseWideViewPort(true);// 可任意比例缩放
study_details_video.getSettings().setLoadWithOverviewMode(true);
study_details_video.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);// 排版适应屏幕
study_details_video.setWebViewClient(new xWebViewClientent());
study_details_video.setWebChromeClient(new DefaultWebChromeClient());
study_details_video.loadUrl(zipPath);
}

private class DefaultWebChromeClient extends WebChromeClient {
private Bitmap xdefaltvideo;
private View xprogressvideo;

@Override//开启全屏
public void onShowCustomView(View view, CustomViewCallback callback) {
super.onShowCustomView(view, callback);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
study_details_video.setVisibility(View.GONE);
//如果一个视图已经存在,那么立刻终止并新建一个
if (xCustomView != null) {
callback.onCustomViewHidden();
return;
}
videoview.addView(view);
xCustomView = view;
xCustomViewCallback = callback;
videoview.setVisibility(View.VISIBLE);
}

@Override//视频播放退出全屏会被调用的
public void onHideCustomView() {
super.onHideCustomView();
if (xCustomView == null)//不是全屏播放状态
return;
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
xCustomView.setVisibility(View.GONE);
videoview.removeView(xCustomView);
xCustomView = null;
videoview.setVisibility(View.GONE);
xCustomViewCallback.onCustomViewHidden();
study_details_video.setVisibility(View.VISIBLE);
}

@Override//视频加载添加默认图标
public Bitmap getDefaultVideoPoster() {
if (xdefaltvideo == null) {
xdefaltvideo = BitmapFactory.decodeResource(
getResources(), R.drawable.videoicon);
}
return xdefaltvideo;
}

//视频加载时进程loading
@Override
public View getVideoLoadingProgressView() {
if (xprogressvideo == null) {
LayoutInflater inflater = LayoutInflater.from(StudyDetailsActivity.this);
xprogressvideo = inflater.inflate(R.layout.video_loading_progress, null);
}
return xprogressvideo;
}

}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (inCustomView()) {
hideCustomView();
return true;
} else {
study_details_video.loadUrl("about:blank");
StudyDetailsActivity.this.finish();
}
}
return true;
}

/**
* 判断是否是全屏
*
* @return
*/
public boolean inCustomView() {
return (xCustomView != null);
}

/**
* 全屏时按返加键执行退出全屏方法
*/
public void hideCustomView() {
new DefaultWebChromeClient().onHideCustomView();
}

/**
* 处理各种通知、请求等事件
*
* @author
*/
public class xWebViewClientent extends WebViewClient {

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.e("webviewtest", "shouldOverrideUrlLoading: " + url);
view.loadUrl(url);
return true;
}

@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
Log.e("webviewtest", "shouldOverrideUrlLoading: " + url);
}
}


现在情况是点击视频无反应,我想获取html里的视频地址 也获取不到 求解
最后上个我的html的内容截图
...全文
145 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧