这个问题困扰了我很久,我接手公司项目的时候视频模块就是用的饺子播放器,但是并不支持https视频的播放,我也是费了很大的精力才把这个事情搞定,下面是我编译时流程以及遇到的问题,供大家参考,这里特别感谢
https://www.jianshu.com/p/3120f943abb7这篇文章的作者,我是按照他的教程来的,但是其中遇到的一些问题我发出来供大家参考
ijkplayer编译支持https的so文件
第一步:下载 git clone https://gitee.com/rmjk_lichun/ijkplayer.git ijkplayer-android
修改镜像地址为 https://gitee.com/yuazhen(需要替换的有 init-android.sh init-android-openssl.sh init-android-libyuv.sh init-android-soundtouch.sh )
就是把 https://github.com/Bilibili 替换成 https://gitee.com/yuazhen (这样有利于编译的速度)
第二步:
cd ijkplayer-android(进入文件开始执行脚本)
git checkout -B latest k0.8.8(这里一定要新建一个本地的分支,否则直接进行下一步,会报一个不能提交代码的error )
第三步:
./init-android-openssl.sh(下载openssl的依赖文件)
./init-android.sh(下载ffmpeg,YUV的依赖文件)
第四部
cd android/contrib
./compile-openssl.sh clean
./compile-ffmpeg.sh clean
第五步:(这个过程有点漫长,但是非常遗憾 x86 x86_64并不能编译成功,armv7a,armv5都可以编译成功)
./compile-openssl.sh armv7a (编译OpenSSL的依赖文件)
./compile-ffmpeg.sh armv7a (编译ffmpeg的依赖文件)
注:这一步ndk相关的问题是一定要把环境变量的值设置成和脚本中的名字是一样的,我的这个脚本的中的名字是ANDROID_NDK(ndk的环境变量名,ndk的版本一定要是10以及以下),如(ANDROID_NDK=/Users/chunli/libs/android-ndk-r10e)
我还遇到了要求sdk环境变量必须是ANDROID_SDK情况,如(ANDROID_SDK=/Users/chunli/Library/Android/sdk)
第六步:
cd ..
./compile-ijk.sh armv7a(生成.so文件)
以上成功以后,AndroidStudio导入ijkplayer项目然后按照下面的博客中教程操作就可以了
https://www.jianshu.com/p/3120f943abb7
注:博客中是把ijk-java 和ijk-armv7a两个整合到一起了,我按照教程操作是没有问题的
但是我自己有一个想法就是仅仅只是引入ijk-armv7a,很显然我的操作失败了(个人认为想法没有错,可能是姿势不对)