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

多日♂不見
相關文章
相關標籤/搜索