IJKPlayer 编译 so 支持 HTTPS 的踩坑历程

hello,你们好,我是那个太监许久的郭同窗,这段时间发生了一些不愉悦的事情,进入了游手好闲的状态,可是···┑( ̄Д  ̄)┍ who care呢?我也知道没人会想念个人,因此就没怎么更新了,绝对不是由于懒哟。︿( ̄︶ ̄)︿

 
同志,github来过没?右转不屑 ----> github.com/CarGuojavascript

一、前言

 
 为何要编译?由于默认IJK竟然不带HTTPS?Why?由于爱情,不会轻易悲伤···这就是爱吧((/- -)/。java

 编译IJK的动态连接库,绝对是对于win党最大的打击,常常是裤子脱了一半,发现拉链卡住,并且还很痛,上也不是,不上也不是的蛋碎感(ノಠ益ಠ)ノ彡┻━┻,官方都说了:on Cygwin (unmaintained),Linux和Mac的胜利。若是你坚持,也许你就会赶上它们:android

  • 安装Cygwin的时候,记得把make选上。
  • $'\r': 未找到命令 : dos2unix xxx,把全部你会编译到的.sh都轮一遍,你觉得完了?不,编译生成出来的version.sh和configure也须要。
  • mingw32-gcc.exe: error: CreateProcess: No such file or directory,听说是文件路径太深了,然而IJK的路径,原本就好深,因此你要把IJK的环境在整一遍,反正到这里我就放弃了治疗啦(ˉ ̄~) 。

二、VMware + Ubuntu编译环境

 
 做为一个win党,头顶青天,我的立刻把电脑里尘封已久的虚拟机搬出来了,我的装的是Ubuntu,加上VMtools,妥妥的,环境搭建我就不唠叨了,这里走起《VMware安装Ubuntu教程,Linux下搭建Android开发环境》。家中常备,总有一天你会用得上。注意NDK r10e以上,虚拟机硬盘尽可能选大一点,否则后面扩展容量又是一番功夫。git

三、编译带HTTPS的so

 
 到了这里你就简单多了,由于是亲生的啊,这时候就是机械化流程啦(✿‿)。github

  • 打开终端命令,安装须要程序。
    sudo apt-get install git
    sudo apt-get install yasm复制代码
  • 下载IJKPlayer源码,在命令终端里cd到ijk的根目录
  • 切换到release版本的tag下,固然,你也能够直接在master
    git checkout -B k0.7.5  //这个版本参考ijk的依赖库版本复制代码
  • 流程化脚本编译
    一、编译前选择你的配置
    If you prefer more codec/format
    cd config
    rm module.sh
    ln -s module-default.sh module.sh复制代码
    If you prefer less codec/format for smaller binary size (include hevc function)
    cd config
    rm module.sh
    ln -s module-lite-hevc.sh module.sh复制代码
    If you prefer less codec/format for smaller binary size (by default)
    cd config
    rm module.sh
    ln -s module-lite.sh module.sh复制代码
    二、初始化openSSL和FFMPEG
    这里会同步下载对应的代码,因此可能会比较耗时哟,
    ./init-android-openssl.sh
    ./init-android.sh复制代码
    三、编译
    cd到android/contrib下,执行清除命令,而后编译须要的so,这里的all是生成全部版本的,若是只须要对应版本的,能够把all替换成armv7a等你须要的版本。编译须要一段时间,这时候你能够找个妹子先吹吹水。︿( ̄︶ ̄)︿
    ./compile-openssl.sh clean//清除
    ./compile-ffmpeg.sh clean//清除
    ./compile-openssl.sh all//编译
    ./compile-ffmpeg.sh all//编译复制代码
    四、生成对应so
    切换到android目录下,执行脚本就能够生成so啦,感受一路顺畅,一泻千里有木有。
    ./compile-ijk.sh all复制代码
    生成的so每种类型有三个,传说,ffmepg的so大于3M就是https成功的标志啦!

最后注意

一、最后不要忘记,在你的gradle里面加入下方的配置哟,否则app会找不到你的so的。
ubuntu


二、若是你以为你的包so太大了,可使用下图的ndk过滤,随时控制你想支持的so,具体可参看 Android蹲坑的疑难杂症集锦(兼Gradle) 二

三、若是须要编译其余播放类型支持,能够修改module.sh下的配置来使能。

相关的so已经集成到播放器里面,须要的能够直接拿出来用,下方连接走起<( ̄︶ ̄)>,点我点我。
github.com/CarGuo/GSYV…
app

多日♂不见
相关文章
相关标签/搜索