公司项目中需要播放mp4视频和rtsp视频,Vitamio刚好可以解决这个问题,使用起来也很简单,百度一搜一大把。
一开始我从GitHub里下载下来使用,然后发现手头上手机安卓系统7.0 的会崩溃,需要把targetSdkVersion改为23以下,修改以后,就可以正常播放视频了。但是,装到一些手机上会提示“此应用专为旧版Android打造...”,很可能导致无法上架应用商店。
开始是想用谷歌的ExoPlayer的,体积小,优点多,加载mp4确实比Vitamio明显快,但是一直不知道怎么加载rtsp,外国的一个答案有个分支说是可以加载rtsp,下载下来一顿搞,反正demo就是各种跟我的AS不匹配,得要新版AS,grandle等。然后我这个项目又是老项目,里面一大堆第三方SDK全丢app一个module里,还有那个看了想打人的注释特别少的渣代码,不敢轻易升级AS和grandle,算了,只能放弃。ffmpeg说是要自己打包,算了,来不及搞了,后来回头看了一下GitHub里的vitamio最近更新是六七年前的时候,已经停止维护,想想这么牛逼的东西不应该啊,后来搜到了5.2.3版本。
然后解决了 targetSdkVersion改为23以下这个问题,我用26是可以使用的,且不崩溃。
手机7.0以上会不弹控制界面,是MediaController里的mWindow.showAtLocation(mAnchor, Gravity.NO_GRAVITY, anchorRect.left, anchorRect.bottom);有问题,可能是Gravity.NO_GRAVITY在7.0以上出问题吧,改成别的就好了。
如果加了vitamio之后导致其他SDK找不到so文件,比如我的项目里的百度地图找不到某个so文件而崩溃,需要在app的build.grandle里的defaultConfig中加入ndk,如下图
解压之后,直接导入,再依赖就可以了