public class WebVideoActivity extends Activity {private WebView webView;/** 视频全屏参数 */protected static final FrameLayout.LayoutParams COVER_SCREEN_PARAMS = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);private View customView;private FrameLayout fullscreenContainer;private WebChromeClient.CustomViewCallback customViewCallback;@Overrideprotected void onCreate(Bundle bundle) {super.onCreate(bundle);setContentView(R.layout.activity_xx);webView = (WebView) findViewById(R.id.xx);initWebView();}@Overrideprotected void onStop() {super.onStop();webView.reload();}/** 展示网页界面 **/public void initWebView() {WebChromeClient wvcc = new WebChromeClient();WebSettings webSettings = webView.getSettings();webSettings.setJavaScriptEnabled(true);webSettings.setUseWideViewPort(true); // 关键点webSettings.setAllowFileAccess(true); // 允许访问文件webSettings.setSupportZoom(true); // 支持缩放webSettings.setLoadWithOverviewMode(true);webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE); // 不加载缓存内容webView.setWebChromeClient(wvcc);WebViewClient wvc = new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {webView.loadUrl(url);return true;}};webView.setWebViewClient(wvc);webView.setWebChromeClient(new WebChromeClient() {/*** 视频播放相关的方法 **/@Overridepublic View getVideoLoadingProgressView() {FrameLayout frameLayout = new FrameLayout(WebVideoActivity.this);frameLayout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));return frameLayout;}@Overridepublic void onShowCustomView(View view, CustomViewCallback callback) {showCustomView(view, callback);}@Overridepublic void onHideCustomView() {hideCustomView();}});// 加载Web地址webView.loadUrl(webUrl);}/** 视频播放全屏 **/private void showCustomView(View view, CustomViewCallback callback) {// if a view already exists then immediately terminate the new oneif (customView != null) {callback.onCustomViewHidden();return;}WebVideoActivity.this.getWindow().getDecorView();FrameLayout decor = (FrameLayout) getWindow().getDecorView();fullscreenContainer = new FullscreenHolder(WebVideoActivity.this);fullscreenContainer.addView(view, COVER_SCREEN_PARAMS);decor.addView(fullscreenContainer, COVER_SCREEN_PARAMS);customView = view;setStatusBarVisibility(false);customViewCallback = callback;}/** 隐藏视频全屏 */private void hideCustomView() {if (customView == null) {return;}setStatusBarVisibility(true);FrameLayout decor = (FrameLayout) getWindow().getDecorView();decor.removeView(fullscreenContainer);fullscreenContainer = null;customView = null;customViewCallback.onCustomViewHidden();webView.setVisibility(View.VISIBLE);}/** 全屏容器界面 */static class FullscreenHolder extends FrameLayout {public FullscreenHolder(Context ctx) {super(ctx);setBackgroundColor(ctx.getResources().getColor(android.R.color.black));}@Overridepublic boolean onTouchEvent(MotionEvent evt) {return true;}}private void setStatusBarVisibility(boolean visible) {int flag = visible ? 0 : WindowManager.LayoutParams.FLAG_FULLSCREEN;getWindow().setFlags(flag, WindowManager.LayoutParams.FLAG_FULLSCREEN);}@Overridepublic boolean onKeyUp(int keyCode, KeyEvent event) {switch (keyCode) {case KeyEvent.KEYCODE_BACK:/** 回退键 事件处理 优先级:视频播放全屏-网页回退-关闭页面 */if (customView != null) {hideCustomView();} else if (webView.canGoBack()) {webView.goBack();} else {finish();}return true;default:return super.onKeyUp(keyCode, event);}}
}

Android webview 播放视频及全屏相关推荐

  1. Android的WebView如何播放视频和全屏视频(腾讯X5内核)

    WebView如何播放视频和全屏视频 前言 1. 接入SDK 2. 具体场景和代码实现 3. 踩坑 3.1 android.system.ErrnoException: chmod failed: E ...

  2. WebView网页视频统一全屏播放及横竖屏切换

    WebView 支持 Html5 video 进行全屏播放及横竖屏自动切换 1.检查AndroidManifest.xml清单文件,WebView控件所在的Activity配置信息;检查Activit ...

  3. Android WebView播放视频(包括全屏播放)

    最近项目开发中用到了WebView播放视频的功能,总结了开发中犯过的错误,这些错误在开发是及容易遇到的,所以我这里总结了一下,希望大家看到后不要再犯类似的错误,尽可能提高开发效率: 这个Demo我这里 ...

  4. android webview 播放视频总结,Android WebView 播放视频总结~

    此次遇到一个问题就是webView无法播放视频,查了下谷歌发现可以设置 setting.setPluginsEnabled(true); (从API 11 支持,可以不加) 这个从而播放视频,但是最新 ...

  5. html视频怎么自动全屏播放,网页中用标签播放视频,可以全屏播放的代码肿么写?...

    使用这个,注意路径中不要使用中文 object id=player classid=CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6 style=width: 68 ...

  6. 【H5】阻止H5页面播放视频默认全屏

    老是看到有人找不到阻止视频默认全屏的问题,看到别人发的帖子不是隐藏video标签使用canvas绘制视频就是使用插件来禁止视频默认全屏的问题,其实没有那么麻烦的只需要设置一下属性就可以了 x5-pla ...

  7. Android WebView播放视频并支持全屏

    1. 前言 支持视频在线播放的网页随处可见,前端开发不需要做太多的工作就可以实现大多数需求.因为播放视频的具体功能是由浏览器核心在处理的.我以为Android的WebView应该是默认支持视频播放的, ...

  8. android饺子播放器屏幕全屏,记录一次 学习饺子播放器切换全屏播放原理

    学习的第一步就是先找到函数的入口:根据R.id.fullscreen这个全屏按钮的点击事件,我们很快就能定位到名叫gotoScreenFullscreen的函数. code line 737 publ ...

  9. 阻止ios播放视频自动全屏

    1.js监听视频全屏事件webkitfullscreenchange <video class="playerVideo" playsinline="true&qu ...

  10. android webview 播放视频

    我的App里面有视频教学,但是我们公司是个创业的小公司,没有财力搭建那么多服务器,所以采用的是把视频上传网站,然后在自己App里面引用.比较了多个视频网站,貌似只有某视频符合要求.原因如下:1.在某视 ...

最新文章

  1. Activity的知识
  2. 微信小程序图标不支持html,微信小程序实现自定义加载图标功能
  3. Notes客户端重新配置批处理
  4. java打包没有src_maven 打包时,src/main/java目录下的xml等资源文件没有打包进去的问题...
  5. Linux 内核详解以及内核缓冲区技术
  6. 最完美的xslt数值函数与字符串函数(转)
  7. 嵌入式系统 Contiki 代码移至 Github
  8. R语言基础入门(3)之数据类型与相应运算1
  9. day33 java的注解
  10. Mybatis插件之自动生成不使用默认的驼峰式
  11. 打开 IBM Rational Rose Enterprise Edition 报错的处理
  12. thinkpadt410接口介绍_独家:ThinkPad T410与T400之细节对比
  13. xz (压缩文件格式)
  14. 程序员史诗级必读书单吐血整理四个维度系列80+本书(珍藏版)
  15. Crowd Counting P2PNet 复现
  16. 京东数据库运维自动化体系建设之路
  17. python中字符串的使用04字符串大小写转换、删除空白字符
  18. 动物识别系统代码python_动物识别系统__代码
  19. multi-kernels、ALLOC与USE、Zero-Copy
  20. 多吃巧克力多笑脑子会更聪明

热门文章

  1. 敷衍的面试|记录问题仅供参考,不代表最终答案
  2. 密码学复习笔记2【分组密码/S-DES、DES】
  3. StringBuilder
  4. Omise携手i2c促进东南亚发卡现代化和加速发卡能力提升
  5. 技嘉 AORUS Radeon RX 6700 XT ELITE 12G 显示卡潮流登场
  6. android百度地图清除marker,百度地图去掉marker覆盖物的方法
  7. 计算机删除登录用户,Windows10账户删除怎么登陆 如何删除账户
  8. 信号隔离器的功能原理是什么?
  9. 无刷马达驱动方案之电动工具方案设计
  10. 【技术分享】Lombok!代码简洁神器还是代码“亚健康”元凶?