Vitamio 视频播放那点坑儿

        如今的项目中基本都会有视频播放(在线视频播放、本地视频播放)这一块,相信大家也用过很多的第三方播放组件,我也尝试过好几种,但最终觉得还是Vitamio比较好用。当然也遇到过坑,就比如这一次。

        Vitamio的配置和使用本篇文章就不说了,百度一搜一大堆,没用过的自行百度就可以了,简单易用。在这里主要说说机型适配的问题。

        项目开发中我用的是魅族(MX4)手机,比较老了,没钱换新机,穷。因为之前也简单用过,所以分分钟集成好跑了一下,视频完美播放,没有问题。然后测试跑过来要包,我就打了一个发给他们测试,结果尴尬了,程序到视频着一块闪退了,没错,闪退了,华为闪退,OPPO也是一样闪退,我一脸懵逼,拿手机调试了一下,发现报错了,报错信息如下:

Vitamio 视频播放那点坑儿_第1张图片

        看一下错误信息,可以看出是找不到Libvinit.so文件,在arm64-v8a这个文件下,我们看一下Vitamio的Lib包:

Vitamio 视频播放那点坑儿_第2张图片

发现并没有arm64-v8a的文件夹,首先说一下,这个是64位系统所用到的文件夹,结果Vitamio并没有,难道Vitamio不支持64位的系统???果断百度了一下,发现所有讲到Vitamio的文章都是如何使用,如何配置,并没有提到64支持性的事,表示很纳闷,并且官网也上不去,据说是因为Vitamio现在维护人员少了,还有说是目前只有一人在维护,所以忙不过来,不管咋说,个人还是很感谢那些大牛的,给我们这些小菜鸡提供了极大的方便。额。。。扯远了。既然百度各种搜不到Vitamio 64位的so文件,那只好另辟蹊径了。

解决办法:

Vitamio只有32位的so文件,那我们就强制系统加载32的so库,反正64位的系统是可以兼容32的,那就强制执行,在app的build.gradle中加上如下代码:

defaultConfig {
        ndk {
            abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
        }
    }
意思就是告诉程序加载这些文件下的so文件,但这些还不够,想要gradle配置生效还需要在gradle.properties中增加一行代码:

android.useDeprecatedNdk=true
好了,这个时候我们就配置完了,系统会被强制加载32的so库,跑一下程序,尼玛,又报错了 :


这次又是libffmpeg.so 我也不知道这是什么鬼,百度一番说是Vitamio还不支持6.0,把targetSdkVersion改成22(<=22)就行了,试了一下,果不其然。

 拿华为、OPPO测试机再测试一下,完美运行。

github上搜了一些视频组件,没发现有特别好的,有哪位大牛能给推荐几款好用的视频播放组件,不胜感激!!!

Vitamio 视频播放那点坑儿_第3张图片

你可能感兴趣的:(Android)