山东网站建设企业,公司加盟代理,做网站基本东西,个人网站一般做多大安卓的播放器对比与选型#xff08;vlc#xff0c;EXOplayer#xff0c;Ijkplayer#xff0c;GSYVideoPlayer#xff09;#x1f4fa;详细过程 前言一、vlc二、EXOplayer三、Ijkplayer四、GSYVideoPlayer#x1f525;#x1f525;#x1f525;五、其他的开源播放器jia… 安卓的播放器对比与选型vlcEXOplayerIjkplayerGSYVideoPlayer详细过程 前言一、vlc二、EXOplayer三、Ijkplayer四、GSYVideoPlayer五、其他的开源播放器jiaozivideoplayerMediaPlayerQPlayer2SmarterStreaming 总结参考 前言
本文主要从实际的角度去解读和选型 入职新公司需要做一款涉及到播放器播放rtsp 流的app要求到我来选型并给了我下面三个选择 在这之前我只是一名普普通通的安卓应用开发工程师没有接触过音视频如果你也和我一样那么这件事真的太酷啦
然后就是为期几天的对比与选型 一、vlc
遇事不决问群友群友给我推荐了vlc这个开源的播放器并友好的向我推荐了文章和vlcDemo我记不得是否是他自己的文章和demo了这是连接
安卓使用VLC播放视频实现截图和录制功能android 使用VLC,录像 截图功能支持rtsp rtmp http SMB 等等。 流媒体,点播视频等等
然后我浏览了vlc的github地址和示例代码的地址并参考上面两个连接实现了一个简单的vlcdemo也对其有了一点简单的了解
优点
跨平台兼容性好功能全面支持 rtsp、rtmp、ftp、http、https 等协议代码完全解耦modules 相互独立不影响引入新 modules 方便维护团队强大更新频繁
缺点
Android 平台编译出的包较大有 16M 左右在 Android 平台上可能存在性能问题需要优化(这个我没体会到)根据群友的友好提醒如果涉及到截图录像的功能要改so要会c我不会所以算缺点
最终因为Android 平台编译出的包较大这个缺点没有采用vlc。
二、EXOplayer
然后就是EXOplayer的调研什么你问我为什么不先调研其他的我有我自己的考量好吧你不要教本安卓开发做事首先我们排除mediaplayer因为百度过后基本没有推荐的然后就是Ijkplayer已经是一个哔哩哔哩不维护的开源项目了而EXOplayer是谷歌开源的持续维护的你说我先调研谁好了话不多说我们骑上心爱的开始。
我先找到EXOplayer的github地址 https://github.com/google/ExoPlayer
然后找到文档https://exoplayer.dev/
然后就狗血的发现啊这个EXOplayer啊他套娃 这是什么❔这是谷歌找安卓老爹找儿子
然后我又去安卓官网看https://developer.android.google.cn/guide/topics/media/exoplayer?hlzh_cn
好好好你官方这么玩是吧❔我整个一看下来发现EXOplayer的最新依赖已经带media3的前缀了前面几个版本还有前缀不同的代码相同的库玩的是真滴花啊又长见识了更正出现杨奇怪的场景是因为带Google前缀的exoplayer将要被废弃新的EXOplayer被整合到media3中
说了那么多其实都是插曲工作赚钱嘛不寒碜最后我又学习并实现了用EXOplayer播放视频和自定义实现播放器界面发现如果只是身为一个api高级调用师的话其实使用方法都是大差不大的这个时候我对播放器心里大概就有个底了。
再说下EXOplayer的优缺点 优点
接入包体积小1.1M护团队强大更新速度快 缺点跨平台不太适合直播可扩展性一般视频软解接入较麻烦适合播放场景简单的项目播放过程中无切换码流的情况
虽然说上手起来简单包体积又小现在还纳入了安卓官方文档但是不太适合直播我们的需求是实时播放一个rtsp流的视频并且播放场景有一定复杂度所以最后选择放弃
三、Ijkplayer
我们老规矩首先是找github地址 https://github.com/Bilibili/ijkplayer
了解过后我同样实现了一个demo基础使用都差不多就是so要不然自己编译要不然在网上找下别人编译好的还有一件事老爹说的不是我说的就是有一些版本是有问题的使用的时候最好看下总得体验下来对于我来说就是引入的时候是最麻烦的。
优点
包体积比 VLC 小 -资料比较齐全但我个人认为这也是一个缺点到处都是问题
缺点
可扩展性较差基本上没有提供 modules 供开发者二次开发官方目前基本不维护不更新
但是因为Ijkplayer支持rtsp所以如果没有更好的选择就决定采用了直到我发现了宝藏和本篇文章的主角GSYVideoPlayer
四、GSYVideoPlayer
github地址 https://github.com/CarGuo/GSYVideoPlayer
让我们看看介绍 视频播放器IJKplayer、ExoPlayer、MediaPlayerHTTPS支持支持弹幕支持滤镜、水印、gif截图片头广告、中间广告多个同时播放支持基本的拖动声音、亮度调节支持边播边缓存支持视频本身自带rotation的旋转90,270之类重力旋转与手动旋转的同步支持支持列表播放 直接添加控件为封面列表全屏动画视频加载速度列表小窗口支持拖动动画效果调整比例多分辨率切换支持切换播放器进度条小窗口预览其他一些小动画效果rtsp、concat、mpeg。总结高端大气上档次 让我们看看作者 曾经有人和我说过在中国做安卓开发不认识这个人就不要说自己是安卓开发
让我们看看文档 现在告诉我你们的答案✨✨✨郭神o(▽)我爱你我要xxxxx 咳咳开个小小的玩笑
因为地址在这里了要是github没有条件的可以去https://gitee.com/CarGuo/GSYVideoPlayer看下文档我就不详细介绍了我拉了项目过后自己改吧改吧用的很满意最终决定使用GSYVideoPlayer来开发项目
优点
支持好几种开源播放器集大成者可以按需引用所需要的依赖这样一来包体积不会太大作者维护很勤快有什么问题issues作者也会帮忙看看文档写的很清楚不需要额外查资料实在不懂代码拉下来一跑对照着代码基本上就能理解了
缺点
-有一些版本对应会有不同的问题比如我使用的时候用了最新的依赖按照文档不能播放rtsp流降低了依赖过后就可以播放了
五、其他的开源播放器
本着学习的态度我期间也看了一些别的开源播放器和大家一起分享一下
jiaozivideoplayer
https://github.com/Jzvd/JZVideo 知道这个是因为前公司的短视频播放是用饺子改的我在app上看效果也不是很好原本好像叫节操现在改名叫饺子网友都说难用所以没有详细尝试感兴趣的兄弟可以去看看
MediaPlayer
https://developer.android.google.cn/guide/topics/media/mediaplayer?hlzh_cn 因为原生的MediaPlayer不支持rtsp流所以我也没有过多的看
QPlayer2
https://github.com/pili-engineering/QPlayer2-Android
七牛播放器的衍生品原本的七牛播放器已经停止维护也是因为不支持rtsp流所以没有尝试
SmarterStreaming
https://github.com/daniulive/SmarterStreaming
大牛直播看起来很牛逼的样子可惜要收费 总结
在我这个需求下我最终选用了GSYVideoPlayer但各位朋友们还是要看自己的需求选用自己适合的三方框架开发起来才能事半功倍
参考
Ijkplayer、ExoPlayer、VLC播放器综合比较