关于Android中使用WebView播放网络视频不能全屏的问题
之前公司要求的一个项目需要播放网络视频,给的是HTML的地址,所以只能用webView播放,但是,播放的时候点击自带的全屏按钮根本没反应,准确说是只有图标变化了,但是根本没有全屏。在网上找了好多资料,博客什么的,都不能解决!于是本人突发奇想,但我点击一个按钮或者一个图标的时候强制当前的Activity横屏充满,不就可以解决了么。于是,不幸的是,我成功了,哈哈!
接下来给大家详细步骤,播放什么代码我就不写了,就是全屏。
首先,在全局声明一个Boolean值,用来判断是否全屏;两个int值,分别是手机屏幕的宽高
private boolean isAll = false; private int width; private int height;
因为改变横屏后,我们webview的宽高得重新设置,所以需要获取手机的宽高,为了方便使用,我在初始化控件的方法中赋值:
public void initView(){DisplayMetrics metric = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metric);width = metric.widthPixels; // 屏幕宽度(像素) height = metric.heightPixels; // 屏幕高度(像素)
//下面两句代码是初始化控件,根据实际情况改变 web_play = (WebView) findViewById(R.id.web_play);btn_all = (Button) findViewById(R.id.btn_all); }
然后在你点击触发事件的方法中写全屏代码,这里用Button举例:
btn_all.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View view) {
//判断是否全屏,如果不是全屏则进行以下操作if(!isAll){
//记得进来后要给Boolean重新赋值,因为这个是全屏操作和退出全屏的判断条件
isAll = true;
//强制activity横屏setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
//获取控件所在的布局RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) web_play.getLayoutParams();
//修改布局中的height,width属性
//这里解释一下,因为你的手机横放过来了,所以,webview的高度其实是你手机的宽度,以此类推params.width = height;params.height = width;
//重新设置修改后的布局给控件web_play.setLayoutParams(params);}} });
当写到这里的时候,已经可以实现横屏全屏了,当然,如果你的布局中还有别的控件,你可以隐藏掉只显示webView
接下来是当点击手机返回键执行的操作,应该是全屏模式,退出全屏,不是全屏返回上一页
@Override public boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {if(isAll){setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) web_play.getLayoutParams();params.width = width;params.height = height/3;web_play.setLayoutParams(params);isAll = false;}else {web_play.loadUrl("about:blank");PlayActivity.this.finish();}}return false; }
重写onKeyDown这个方法,判断用户点击的是不是返回键,如果是,继续判断当前是否全屏,这时候我们定义在全局的Boolean值就用上了,如果是true,说明是全屏
,那么则让activity竖过来,重新设置宽高,这个时候的宽高就是对应的手机的宽高,当然,高度多少你自己可以定义。设置完之后记得改变Boolean变量的值,变为false,否则你下次就不能全屏了!
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
好了,以上就是我的解决方案,可以完美的解决全屏的问题。如果小伙伴发现了什么bug记得给我留言。
其实这并不是严格意义上的全屏,但是可以满足用户的需要,如果你取到的视频资源是.mp4结尾的,那么就不用这样了,直接用播放器就好了!
第一次写博客,写的不好,希望大家多多见谅!
关于Android中使用WebView播放网络视频不能全屏的问题相关推荐
- android:自己实现能播放网络视频url的播放器
2019独角兽企业重金招聘Python工程师标准>>> android原生自带的播放器一般只能播放本地视频,而没有播放url的功能.不过android系统中有一个VideoView的 ...
- android播放网页视频播放器下载,android:自己实现能播放网络视频url的播放器
android原生自带的播放器一般只能播放本地视频,而没有播放url的功能.不过android系统中有一个VideoView的控件可以实现这一功能. 简单实现如下: public class MyVi ...
- android 系统播放器播放https,android:自己实现能播放网络视频url的播放器
android原生自带的播放器一般只能播放本地视频,而没有播放url的功能.不过android系统中有一个VideoView的控件可以实现这一功能. 简单实现如下: public class MyVi ...
- html5--移动端视频video的android兼容,去除播放控件、全屏等
android下html5的视频播放一直是前端兼容的重灾区,各种体验差,被诟病已久.但之前的故宫穿越H5,和吴亦凡入伍H5,利用的视频技术,貌似又给人一种新面貌. 前段时间做某项目,恰好也是一个类似视 ...
- android webView 全屏播放网络视频
1.webView播放网络视频时,有些视频源点击全屏时无反应,经过反复查验探索,原因是某些厂商写的页面不规范导致. 通过阅读官方文档得知 应用如果需要支持HTML5的video标签,必须打开硬件加速 ...
- WebView网页视频统一全屏播放及横竖屏切换
WebView 支持 Html5 video 进行全屏播放及横竖屏自动切换 1.检查AndroidManifest.xml清单文件,WebView控件所在的Activity配置信息;检查Activit ...
- Android的WebView如何播放视频和全屏视频(腾讯X5内核)
WebView如何播放视频和全屏视频 前言 1. 接入SDK 2. 具体场景和代码实现 3. 踩坑 3.1 android.system.ErrnoException: chmod failed: E ...
- Android VideoView无法播放网络视频
今天学习Android播放视频和音频,其中在练习播放视频的时候无法播放网络视频,网络视频是别人发布在网上的,但是把视频放在本地是可以的,最后推测是没有开放网络的访问权限的问题,果然开放了之后就能正常访 ...
- android视频自动旋转,Android 使用PLDroidPlayer播放网络视频 根据视频角度自动旋转...
最近因为项目需求 ,需要播放网络视频 ,于是乎 研究了一番 ,说说我遇到的那些坑 现在市面上有几个比较主流好用的第三方框架 当然还有很多别的视频播放框架 因为我只找到这几个= =! 因为项目比较急,所 ...
最新文章
- 《梦断代码》读书笔记
- Android演示Stack(课下作业)
- redis scan命令详解
- ​人工智能的底层构架,认识HBase数据模型
- mybatis将字段改为null_【MyBatis入门到入土精讲】MyBatis介绍
- 多功能网页刷新助手(刷PV)
- Tomcat 内存溢出问题与解决方法
- 微机原理是微型计算机与接口技术吗,《微机原理与接口技术》课程教学大纲
- MacVim配置文件
- AcWing 95. 费解的开关(推理)
- .ipynb文件怎么打开_Mac应用程序无法打开提示不明开发者或文件损坏怎么对待呢?
- 多硬盘分区管理fdisk
- 【Mac 系列】Mac安装Mysql
- Live800:教育行业新拐点,在线客服系统如何提供价值?
- 2022 高教杯数学建模C题古代玻璃制品的成分分析与鉴别回顾及总结
- 流畅chatbot采样
- LintCode python入门题
- 永磁同步电机滞环电流控制
- ubuntu16.04安装vmware后集成显卡如何开启3D加速的问题解决思路
- python批量打印网页_用Python批量打印定制的HTML页面
热门文章
- 计算机开机桌面黑屏怎么办,启动电脑却发现屏幕黑屏,怎么解决?
- 基于大数据的模型预测用户是否会进行交易 文档+答辩PPT+Python源码及数据
- obs 推流编码在哪设置_OBS Studio基本设置
- 竞赛题-6283. 正整数和负整数的最大计数
- Python pygame,精灵和精灵组
- mysql慢sql分析平台_慢SQL分析工具 - __KK的个人空间 - OSCHINA - 中文开源技术交流社区...
- 如何将单线程爬虫改成多线程
- 直角三角形面积Java_利用Eclipse编写第一个简单的Java程序,实现如下功能。 键盘输入:直角三角形两直角边a, b,根据勾股定理计算斜边的平方值。并输出。 例如:运行效果如下...
- 5个流行的开源HIDS系统介绍
- 计算机大赛的英语怎么说,最全英语奖项 比赛名称翻译.doc