在平时开发过程中,如果使用到视频播放器的功能,那就一定会涉及到全屏切换的操作

以往常规操作基本如下

设置全屏播放步骤

1、横屏

2、视频播放器尺寸调整

3、隐藏其他多余控件

恢复小屏播放

1、竖屏

2、调整视频播放器尺寸

3、恢复其余控件

或者一些其他操作

1、小屏播放器暂停,记录进度

2、调用全屏播放器播放,指定播放进度

3、恢复的情况下重新设置小屏播放进度

这样的操作在简单的界面可以适用,只要逻辑控制好即可。

弊端:

1、要进行逻辑处理较多,容易出问题

2、在列表等特殊位置的播放器不易控制

3、若使用全屏播放器切换不流畅,有卡顿现象

我们今天要说的是,如何在复杂界面上的视频播放切换,步骤很简单,两步骤,基本使用所有场景。

一、首先要了解一个 Activity 是由哪些部分组成

image.png

从上面图片可以看出activity的层级可以看出整个activty的层级其实分为->phoneWindow->DecorView(包含TitleView [例如actionbar,StatusBar等] 和contentView [我们自己编写的界面] )

二、巧妙的利用DecorView层实现视频的全屏播放功能

竖屏切换全屏步骤:

1、Activity进行横屏切换

2、从contentView中移除播放器player

3、获取DecorView对象,将移出的player加到DecorView中

4、设置player的全屏播放尺寸

全屏还原至竖屏步骤:

1、Activity竖屏切换

2、从DecorView移除player

3、将player再放回去到contentView中

4、设置player竖屏的播放状态

注意事项:

1、每次移除加入的时候确保将其从原控件中移除,否则会报错 xx already has a parent xx 注意规避。

2、切换过程中注意DecorView.setSystemUiVisibility(x) 要注意控制顶部的状态栏样式,切换全屏播放的时候可以将其隐藏,还原小屏的时候再行恢复

3、注意刘海屏或挖孔屏等一些特殊屏幕的适配操作

举一反三:

1、实现播放器悬浮播放也可以参考这种,播放器保持一个对象,移除加入再恢复之类的

欢迎大家留言讨论

android播放器竖屏,Android 巧用DecorView实现列表或详情视频播放器竖屏及全屏切换...相关推荐

  1. 【哔哩哔哩播放器】2020最新版高仿哔哩哔哩视频播放器网站源码

    [哔哩哔哩播放器]2020最新版高仿哔哩哔哩视频播放器网站源码   Lan   2020-05-12 10:06   190 人阅读  0 条评论 2020最新版高仿哔哩哔哩视频播放器网站源码,支持弹 ...

  2. AS2.0列表带图片视频播放器【附原码下载】

    AS2.0列表带图片视频播放器[附原码下载] http://km258369.blog.163.com/blog/static/2390120112016101914615450 原码下载链接:htt ...

  3. android 播放gif动画效果,Android开发:教您如何让Gif动画动起来

    我们已经连续推出<如何实现TCP和UDP传输>.< Android 提供了另外一种解决的办法,就是使用AnimationDrawable 这一函数使其支持逐帧播放,但是如何把gif ...

  4. android 播放提示音,[转载]android播放音效例子 (翻页音效、警报音效通用

    音效播放: 资源文件: res/raw/filename 声音池类:SoundPool sp = new SoundPool(同时最大播放个数,AudioManager.STREAM_MUSIC,0) ...

  5. android 播放gif动画效果,android 通过帧动画方式播放Gif动画

    注意:经过本人测试,这个方法很耗内存, 图片一多就崩了.慎用 <1>用工具(photoshop或者FireWorks)将GIF动画图片分解成多个GIF静态图片,然后保存在res\drawa ...

  6. Android中判断Wift是否开启,手机屏幕状态,sdcard是否被拔出,设置全屏

    第一个问题:判断手机当前上网用的是sim卡还是wifi,我写了一个封装的方法,以后可以拿来用: [java] view plaincopy print? /** * check the interne ...

  7. android 调用本地第三方应用软件,如qq、微信、微博和视频播放器等

    在做Android开发的过程中有很多时候要调用第三方的软件来辅助自己的软件完成相应的功能,比如在一个软件中调用QQ或者微信来进行聊天,或者是调用第三方的视频软件来视频播放等...经过查找资料有很多资料 ...

  8. 树莓派 Raspberry Pi 安装视频播放软件-omxplayer 并配置全屏播放

    #前言 本人比较喜欢看电影,有时身边只有一台非智能电视的液晶电视,所以我想着树莓派接上电视把低级的电视升级为智能电视,通过网上查询与实践,成功解决树莓派播放视频的问题.树莓派CPU性能较弱,而其GPU ...

  9. python在tk界面播放本地视频_如何使用python3在tkinter窗口中插入视频播放器?

    我想用python构建一个视频播放器,但是我的应用程序将有更多的按钮,而不仅仅是play/pause,所以我需要在窗口中插入视频.在 到现在为止我有这个代码:import tkinter import ...

最新文章

  1. 唱好铁血丹心谐音正规_孩子想学唱歌?儿童声乐怎么学才好?
  2. 一道没人搞得定的趣味Shell编程游戏题!,看看你会不会?
  3. 面试官系统精讲Java源码及大厂真题 - 33 CountDownLatch、Atomic 等其它源码解析
  4. Android项目跑不起来,本机的android虚拟机跑不起android小项目
  5. java基础—Hashtable,HashMap,TreeMap的区别
  6. 输入控件控制输入限制
  7. 6个用于大数据分析的最好工具(转)
  8. 新物种!大数据安全工程研究中心告诉你什么叫“数据安全成熟度测评师”
  9. 网页版简书界面优化小建议
  10. 数据之路 - Python爬虫 - Scrapy框架
  11. 接收邮件的服务器称为,接收邮件服务器
  12. python做数字识别_用python实现手写数字识别
  13. 稳压管Ir、Izt、Izk、Izm释义
  14. html 中各种鼠标手势
  15. win10 小娜搜索空白
  16. 升级mac系统正在计算机,Mac升级卡死解决办法
  17. 俄罗斯无线认证-FAC认证
  18. TCP/IP网络编程:计算器服务器端/客户端
  19. 表格头固定而列可滚动的效果
  20. mac更换java版本_Mac上更换JDK版本方法

热门文章

  1. 爬取并下载国家地理杂志官网8月份照片
  2. 易语言通过进程名称获取进程ID
  3. 机器学习笔记 - 各领域公开数据集下载
  4. 该邮件的附件格式不正确_刚刚海关退单时提示430,该怎么做?一定是你打开的方式不正确!!...
  5. Typecho上手指南
  6. 西门子vav控制器_西门子电子式房间温控器用于VAV和CAV系统RCU50、RCU50.1、RCU50.2...
  7. 本田CRV被曝轮胎速度级别等同3万元小面包车
  8. 水仙花问题:水仙花数是一个3位数,其值刚好等于其各个数位的立方和。如153= ,编程输出所有的水仙花数。
  9. 微信小程序退款流程详解
  10. 电商平台如何接入快递鸟电子面单API?