github项目地址:https://github.com/huyongli/TigerVideo

TigerVideoPlayer

Library实现了Android中的视频播放模块,视频播放控制与界面显示充分解耦,可自定义自己喜欢的内核播放器来实现播放功能(MediaPlayer,ExoPlayer等)。

欢迎大家加群交流:106510493

功能

目前该库主要实现视频播放中的如下功能:

  1. 列表中播放视频
  2. 列表滑动时如果正在播放视频,则列表中播放的视频自动切换为小窗口浮动播放,滑动可恢复为正常播放
  3. 支持配置打开或关闭小窗口播放功能,默认关闭
  4. 各种播放模式切换到全屏播放
  5. 实现了视频播放中的暂停,进度显示等各种常规操作
  6. 视频全屏播放时支持左右滑动实现视频的快进和后退,支持右边上下滑动调整播放音量,左边上下滑动调整播放器的亮度等手势控制操作
  7. 视频全屏播放时支持锁定当前播放状态
  8. 支持直接进入全屏播放
  9. 使用AndroidVideoCache实现视频缓存功能,该功能默认关闭,使用配置即可打开该缓存功能
  10. 因视频播放内核与视频操作界面充分解耦,因此完全支持自定义自己喜欢的播放内核来实现视频播放
  11. 该库实现了基于MediaPlayerExoPlayer两个内核的视频播放器,可以根据自己的需求配置。因为ExoPlayer需要Context,所以该库默认使用MediaPlayer内核播放器播放 11.支持自定义头部Title显示相关视图,支持自定义底部播放控制条视图,支持自定义全屏播放时手势操作相关显示视图,支持替换预览图ImageView,支持自定义加载失败显示视图

TigerVideoPlayer的使用

该库实现了一行代码实现视频播放,一行代码开启小窗口播放,使用简单。

Gradle

compile 'cn.ittiger:TigerVideoPlayer:1.7'

视频播放

    
//绑定视频地址和标题,这样视频播放功能就集成完成了,剩下的工作全部交由VideoPlayerView完成mVideoPlayerView.bind(video.getVideoUrl(), video.getVideoTitle());//显示视频预览图Glide.with(mContext).load(video.getVideoThumbUrl()).into(holder.mPlayerView.getThumbImageView());

自定义播放器相关视图

如上代码所示,如果要自定义全屏手势操作相关View,只需要在布局中添加自定义属性app:vpFullScreenGestureViewLayoutRes即可

  1. 自定义布局my_fullscreen_gesture_view的根视图必须继承自FullScreenGestureView
  2. 自定义底部播放控制条View时,必须继承自VideoControllerView
  3. 自定义视频缩略图,必须继承自ImageView
  4. 自定义加载失败View,不需要继承任何View
  5. 自定义头部View时,必须继承自VideoHeaderView

自定义播放配置

//该配置最好在Application中实现PlayerManager.loadConfig(    new Config.Builder(this)    .buildPlayerFactory(new ExoPlayerFactory(this))//使用ExoPlayer内核作为视频播放器,默认使用MediaPlayer    .enableSmallWindowPlay()//开启小窗口播放,默认不开其    .cache(true)//开启缓存功能,默认不开启    .cacheProxy(HttpProxyCacheServer)//自定义缓存配置,不设置则采用默认的缓存配置    .build());

自定义不同内核的播放器

  1. 实现播放器抽象类AbsSimplePlayer,根据你需要的内核实现视频播放的相关功能
  2. 实现IPlayerFactory接口,在方法public AbsSimplePlayer create();中返回对应的播放器对象
  3. 通过配置.buildPlayerFactory()设置该播放器工厂

使用注意点

  1. 对于需要使用全屏播放的Activity,需要在AndroidManifest中对该Activity配置android:configChanges="orientation|screenSize|keyboardHidden"
  2. 不要使用默认的ActionBar,如有需要请使用v7包中的ToolBar(该问题后面会改进),否则全屏播放会显示有问题
  3. 对于Activity中视频播放时,最好在onResume, onPause, onDestroy方法中通过PlayerManager加上对应的方法:resume, pause, release
  4. 对于在Fragment中播放视频时,在onDestroyView方法中调用PlayerManager.getInstance.stop();

以上是TigerVideoPlayer使用的简单说明,具体使用请参考Demo


TigerVideo

基于多个开源库实现的一个视频播放App,练手项目

主要使用的开源库

Mosby(一个MVP框架)、RxJava、Retrofit2、ButterKnife、Glide、Systembartint、TigerDB、TigerVideoPlayer、Material Design相关控件

 

 

 

 

 

更多相关文章

  1. html5在 Android(安卓)/ IOS上不能自动播放音乐或视频
  2. Android(安卓)的 HTTP Client 的使用
  3. 使用MediaPlayer播放声音的异常
  4. android系统学习笔记六
  5. android支持有线网--网络上看到
  6. Android(安卓)3D引擎之min3D--支持材质和UV贴图的objloader
  7. Android(安卓)开发之 ---- bootloader (LK)
  8. git clone代码断点续传解决办法
  9. Android模拟器的属性配置介绍

随机推荐

  1. typedef在c语言中是什么意思
  2. c语言换行符号是什么
  3. c语言中\t是什么意思
  4. 史上最佳的C#编程书籍推荐
  5. &&在C语言中是什么意思
  6. c++标识符命名规则
  7. c语言中将一个字符串转换到整型数据类型
  8. c语言整除符号是什么?
  9. c语言\n什么意思?
  10. C语言中数据int的取值范围为多少?