-
懒人so库
如果有童鞋不想编译,在这里提供一个已经编译好了的so库,可自行去下载使用,https://github.com/tbxyxs/ijkplayer-so
-
环境准备
系统:ubuntu 17.10 sudo apt install linuxbrew-wrapper:安装brew brew install git brew install yasm
-
配置ndk、sdk路径
- 配置android sdk与ndk:(添加以下内容到当前用户home目录中的.bash_profile文件或.profile文件中。
+内容:
//add sdk:改成对应的路径即可 export ANDROID_SDK=D:/Develop/android_sdk_install //add ndk:改成对应的路径即可 export ANDROID_NDK=D:/Develop/android_sdk_install/android-ndk-r14b source ~/.profile //立即生效
- 配置android sdk与ndk:(添加以下内容到当前用户home目录中的.bash_profile文件或.profile文件中。
-
同步ijkplayer源码
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android cd ijkplayer-android git checkout -B latest k0.8.8 //k0.8.8:切换到源码版本分支上,根据版本号填写对应的版本号
-
设置bash
sudo dpkg-reconfigure dash //弹出框后选择否(no),即使用bash。
-
初始化
sudo ./init-android.sh //此时,它会拉取ffmpeg等对应cpu架构的代码。
-
编译ijkplayer支持参数配置:
- 它的主要作用就是配置一些打出来的so库包支持的功能有哪些,如:支持什么协议、支持什么音视频类型,把要支持的参数改为enable启用或disable禁用即可开启/关闭某项功能了。
注:官方默认给了3个已经配置好的脚本,分别是:(也可自行修改里面的配置开关参数) module-default.sh:默认,如果你喜欢更多类型可以用这个; module-lite.sh:如果您更喜欢较小的二进制大小的编解码器/格式(默认情况下). module-lite.hevc.sh:如果您更喜欢较小的二进制大小的编解码器/格式(包括hevc功能). 修改module.sh中的内容 默认可以使用命令进行修改,如举例:修改module.sh的内容与module-default.sh一样,可以直接copy或者命令行处理: $:cd config //进入config目录 $:rm module.sh//删除module.sh脚本文件 $:ln -s module-default.sh module.sh //这里将会copy module-default.sh文件保存为module.sh文件,这就生成了一个新的module.sh脚本文件。
-
添加https的支持:
cd .. //返回源码根目录 ./init-android-openssl.sh //执行该脚本文件,即可增加对https的支持
-
清理缓存
cd android/contrib ./compile-openssl.sh clean //清理openssl,如果不用支持https,则可不用清理 ./compile-ffmpeg.sh clean//清理ffmpeg
-
编译模块openssl
cd android/contrib ./compile-openssl.sh all 注:这有个问题(此问题在ubuntu中不会出现): 1.编译文件文件时,在windows系统下会报:“./compile-openssl.sh:行17: $'\r': 未找到命令”等错误,这是因为windows在执行默认脚本时,当要创建xxx.sh文件脚本时,默认创建出来的文件编码格式为windows格式,需要手动去转一下这些报错的.sh脚本文件,转成unix格式,方可解决,直接用notepad++转下码就行了。
-
编译模块ffmpeg
./compile-ffmpeg.sh all //如果想编译所有版本的so库,就跟all,如果是特定CPU架构就跟cpu架构,比如:./compile-ffmpeg.sh armv7a
-
编译最终的so包:
cd .. //切换到源码根目录 ./compile-ijk.sh all //执行编译so库的脚本;all:支持所有平台,如果只想编译某一cpu架构平台,可替换成对应的平台名称即可:如:./compile-ijk.sh armv7a 注:不加all,默认编译只生成armv7a架构平台;
ijkplayer编译篇(Ubuntu)
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
- 引言: 公司现在的电台项目是我第二个接触音频播放项目,Android音视频播放很多还是使用的MediaPlayer...
- 前端时间项目中用到了视频播放的功能,没办法又不想使用系统自带的播放器,没有为什么就是不想用,我也希望谷歌爸爸能出一...
- 小主人报8月18日讯(实习记者 王书虹)18日上午,海口市国贸路北京大厦15楼,风之声演播室内,风之声语言...