前一段时间在公司项目上做了一个视频播放的功能,当时时间紧,做完之后感觉有些地方处理的不好,所以就基于当时实现的思路进行了一些改进,加上自己平时喜欢看新闻客户端里面的一些短视频,所以就用网易等客户端的视频数据完成了一个独立的视频播放APP,顺便巩固下其他的技术。
主要使用的开源库
Mosby(一个MVP框架)、RxJava、Retrofit2、ButterKnife、Glide、Systembartint、TigerDB、Material Design相关控件
主要功能
- 列表中播放视频
- 列表滑动时如果正在播放视频,则列表中播放的视频自动切换为小窗口浮动播放
- 列表播放切换到全屏播放模式
- 视频播放时也添加了完整的暂停、播放等控制操作,也添加了视频播放进度,视频缓冲进度等显示功能
- 视频全屏播放时支持左右滑动实现视频的快进和后退,支持右边上下滑动调整播放音量,左边上下滑动调整播放器的亮度等手势控制操作
播放器
- 播放器采用
Android
中自带的TextureView + MediaPlayer
实现,同时视频播放过程中因为涉及到列表、小窗口、全屏续播等问题,所以整个视频播放过程中,播放器采用的是全局单例模式实现,这样就可以达到无缝切换续播的问题 - 切换到全屏播放时,是直接重新开启一个横向的
Activity
来实现全屏播放
APP实现效果图
github地址
感兴趣的朋友欢迎去我的github上star
和fork
原创文章,转载请出处注明。
下面是我的个人公众号,欢迎关注交流