SuperVideoPlayer
【停止维护说明:这个项目的开始的初衷是为了大家方便 vitamio 库项目而做的一个示例工程,但是 vitamio 并不是开源项目。导致很多功能根本无法进行二次开发。这项目也就没有维护的必要了。有需要的朋友,敬请期待我真正基于开源库开发的视频播放库!】
集成 android 流媒体处理 vitamio 框架。实现播放本地视频,网络视频,直播等功能。
写这个开源项目的初衷: 刚接触流媒体处理的时候,一个小的问题都能被难住半天。然后跑到 qq 群里面去问,google 去搜(ps:官方群不鸟你)。一直觉得这样浪费了很多很多宝贵的时间。写这个开源项目是主要想把自己的踩过的一些坑都整理出来,能帮助到一些新接触流媒体处理的开发者。更多的是抛砖引玉,小弟也是流媒体处理的新兵一只。希望各位流媒体处理的大神,小神大家能一起开发这个项目,我们一起实现一个实用流媒体的开源库(走过的坑不能白走啊!!)。
注意事项:
- 用 studio 导入项目可能较慢,耐心等一下**。
- 播放本地视频只需要修改 VideoViewActivity 的 mVideoView.setVideoPath(mVideoPath);将 mVideoPath 修改为你本地的视频的 路径:例如:“/storage/sdcard0/xxx.mp4"即可。
- 关于 Videoview 的一些设置,大家可以参考 vitamio 的 API。vitamio Api 链接
目前集成了 vitamio,综合 vitamio 的特性目前实现的功能有:
- 播放本地视频,网络视频,直播
- 左右侧滑动调节声音和亮度
- 缓存视频进度条
- 切换不同显示大小(全屏,拉伸,剪切)
- 支持截屏
- 支持快进,快退
- 支持弹幕功能
vitamio 支持的视频格式:
- DivX/Xvid
- FLV
- TS/TP
- MKV
- MOV
- M4V
- AVI
- MP4
- 3GP
直播流格式:
- MMS
- RTSP (RTP, SDP), RTMP
- HTTP progressive streaming
- HLS - HTTP live streaming (M3U8)
注: 不同视频格式的测试地址有 mp4,avi,flv,直播流的测试地址有:RTMP,M3U8。如果大家有其他视频格式的链接地址,帮忙发我一下。添加到 issue 中就行
下一步:
- 添加视频设置界面,可以设置播放的一些配置(画面质量,硬解码等)
- 边播放,边缓存到本地
示例:
项目介绍:
1.引入库项目
- greenDAO greenDAO 是一个 Android 对象关系映射工具(ORM)库
- CircularFloatingActionMenu 是用于安卓系统中的可自定义的动态圆形浮动菜单按钮。
- SwipeMenuListView 是一种可以在某一个 view 条目中响应用户左右侧滑滑出操作菜单的 UI 类库。
- DanmakuFlameMaster android 弹幕支持库
vitamio 视频播放库
引入的库除了 vitamio 以外,其他的都只是涉及到界面 ui,数据存储相关的。和流媒体的处理关系不太。 实现流媒体功能的时候完全可以不用考虑这些。 不要因为这个不参与这个项目哦。
2.核心类介绍
LaunchActivity:
- 应用启动界面,有加载数据,添加数据。切换不同界面等功能。
VideoViewActivity:
- 视频播放界面,在改类中使用 vitamio 的 VideoActivity 播放视频。
CustomMediaController :
- 继承 vitamio 的 MediaController 类,是一个 FrameLayout. CustomMediaController 类主要是用于显示视频控制布局(就是播放,暂停,截屏,左右滑动切换声音的界面)。
注:截屏,锁屏功能都是使用 VideoView 进行开发。所以都是在 VideoViewActivity 和 CustomMediaController 中进行。 CustomMediaController 类中处理相关 ui 操作,VideoViewActivity 中处理 VideoView 的相关设置。
参与步骤:
- 将该项目 fork 到自己的 github;
- 完成待实现功能的代码编写和测试。
- 提交 pull requests.(提交之前记得先拉取一下,避免冲突哦!!)
问题反馈:
如果在使用过程中发现有问题,请描述清楚问题。我会尽力去解决,如果你有好的解决方案,也欢迎提交 requests. 例如: 视频播放不了
- 请写明视频格式,和链接,然后在 github 上提交 issue。
扩展
大家如果在使用中想要提出公司业务相关的功能,比如视频前加广告,可以直接提交到 issue 上。(ps:这个我现在也不知道怎么做)。我会把一些好的需求加到项目的功能计划中,相信大家一起参与就能实现。
版权说明
项目目前是基于 vitamio 进行二次开发的,该开源库对个人开发者免费,对公司收费。如果是公司使用,请自行和vitamio 公司协商付费。