Android播放器实现横竖屏切换
Android视频播放器实现小窗口和全屏状态切换:
Demo地址 (gitee)
1、针对全屏按钮添加以下方法:
controller.setFullScreenListener(new FullScreenListener() {@Overridepublic void onClick(View view) {// TODO: 2021/8/31 横竖屏切换Log.d("caowj", "横竖屏切换监听响应");int direction = getActivity(getContext()).getResources().getConfiguration().orientation;if (direction == Configuration.ORIENTATION_PORTRAIT) {Log.d("caowj", "当前竖屏");startFullScreen();} else if (direction == Configuration.ORIENTATION_LANDSCAPE) {Log.d("caowj", "当前横屏");exitFullScreen();} else {Log.d("caowj", "未处理的direction:" + direction);}}});
public static Activity getActivity(Context context) {if (context == null) {return null;}if (context instanceof Activity) {return (Activity) context;} else if (context instanceof ContextWrapper) {return getActivity(((ContextWrapper) context).getBaseContext());}return null;}private void startFullScreen() {// 设置为横屏模式getActivity(getContext()).getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);getActivity(getContext()).setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);// 切换全屏播放前当前VideoPlayerView的父容器ViewGroup viewGroup = (ViewGroup) this.getParent();viewGroup.removeView(this);LayoutParams lp = new LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);lp.setMargins(0, 0, 0, 0);viewGroup.addView(this, lp);}private void exitFullScreen() {// 设置为竖屏模式getActivity(getContext()).getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);getActivity(getContext()).setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);// 切换全屏播放前当前VideoPlayerView的父容器ViewGroup viewGroup = (ViewGroup) this.getParent();viewGroup.removeView(this);LayoutParams lp = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);viewGroup.addView(this, lp);}
2、注意事项:
a、横竖屏切换方法需要放在自定义的播放器(PlayView)中,否则不生效;
b、Activity声明时添加以下配置,屏幕切换时不会重新执行onCreate方法:
android:configChanges=“orientation|keyboardHidden|screenSize”
参考:https://blog.csdn.net/u010072711/article/details/51517170
Android播放器实现横竖屏切换相关推荐
- Android基础篇 屏幕横竖屏切换(layout-land)下篇
默认情况下Activity进行屏幕旋转会自动进行onDestroy并重新onCreate 一.非默认情况下 在AndroidManifest.xml的Activity中配置 <activitya ...
- Android 播放视频时横竖屏的调整
我个人看视频的时候喜欢横屏看,这样视频图像显得还大,所以在做自己的播放器的时候默认就是横屏显示.这样在播放横屏录制的视频时没有问题,但是一旦播放竖屏录制的视频问题就大了,图像都是偏转90度的.这可怎么 ...
- android compose webview视频播放横竖屏切换
先看演示 compose webview横竖屏切换 1.添加依赖: 文档 implementation "com.google.accompanist:accompanist-webview ...
- 解决Android手机 屏幕横竖屏切换
Android中当屏幕横竖屏切换时,Activity的生命周期是重新加载(说明当前的Activity给销毁了,但又重新执行加载),怎么使屏幕横竖屏切换时,当前的Activity不销毁呢? 1. 在An ...
- Android 禁止横竖屏切换、设置横屏
<activity android:name="com.bokecc.sdk.mobile.QuestionActivity.QuestionSingleChoiceActivity& ...
- widget中自动横竖屏切换时的问题
首页 Android开发者社区 Android百科 极客学院 开启辅助访问 打卡签到 我要上头条 如何赚e币 注册验证问题 版主申请 切换到宽版 帐号 自动登录 找回密码 密码 登录 加入eoe ...
- Android杂谈--layout的横竖屏处理
From:http://www.cnblogs.com/loulijun/archive/2011/12/22/2296505.html 一.layout-land和layout-prot的区别与使用 ...
- 视频播放如何横竖屏切换
最近一直在做视频相关的项目,其中一个很重要的功能就是播放时的横竖屏切换,于是研究对比了下市场上主要视频类APP的横竖屏切换方式,共分为两种,一种以优酷视频和土豆视频为代表,当横放手机时整个界面都旋转了 ...
- Activity 在横竖屏切换情况下的生命周期变化
title: Activity 在横竖屏切换情况下的生命周期变化 date: 2018-04-26 23:05:57 tags: [Activity] categories: [Mobile,Andr ...
- Compose 横竖屏切换时状态如何保存?rememberSaveable 实现原理分析
前言 在这篇文章中提到了 Navigation 的状态保存实际是由 rememberSaveable 实现的,有同学反馈希望单独介绍一下 rememberSaveable 的功能及实现原理.我们都知道 ...
最新文章
- Linux的主要特性
- 深度解析ASP.NET2.0中的Callback机制
- windows 远程访问别人的linux下的ftp服务器,linux与windows之间使用ftp相互访问(CentOS提示ftp:command not found)...
- 科大讯飞ai研究院_科大讯飞1024开发者大会:让AI赋能行业数字化升级
- SAP Spartacus里的产品主数据显示的数据源
- 计算机理论专业研究生论文课题,计算机理论方向论文选题 计算机理论论文标题如何定...
- virsh 关机_kvm虚拟机不能使用virsh shutdownw命令关闭虚拟机的解决方法
- 对STL的string进行格式化输出
- mysql proxy yum_mysql 高可用架构 proxysql 之一 yum安装
- MySQL存储引擎:MyISAM InnoDB
- eclipse插件svn账号信息清空重新登陆
- docker 容器的常用命令及配置
- 【软件工程】系统约束
- 教务管理系统数据字典mysql_学校教务管理系统--数据库课程设计
- ADF中在jspx页面加载的阶段添加自己的代码
- ECMAScript6 Proxy和Reflect 对象操作拦截以及自定义
- 爬取淘宝网站的商品数据
- Css3实现背景毛玻璃效果
- 服务器灰度部署和原理
- TreeMap、二叉树
热门文章
- AutoCAD2014注册机使用说明
- 哈工大计算机保研面试专业课问题,[转载]哈工大保研面试
- IQ Questions
- Designing Network Design Spaces论文导读
- 【凯子哥带你学Framework】Activity启动过程全解析
- 统一社会信用代码校验和生成
- 携程2019校园秋招后台开发笔试题(Java)
- python tests in xxx问题
- 手机vnc连接云服务器,云服务器管理终端(VNC连接)说明
- #10015. 「一本通 1.2 练习 2」扩散 二分+并查集或Floyd