1. 环境搭建
1.1 安装cygwin,并安装git,make,ysam
具体安装过程网上有很多资料,不再详述。
1.2 android sdk和android ndk下载和安装
参见网上资料
1.3 下载ijkplayer源码
git clone https://github.com/Bilibili/ijkplayer.git ijkplayercd ijkplayer git checkout -B latest k0.3.1
1.4 设置环境变量
在cygwin的home目录下,修改 ~/.bash_profile 或 ~/.profile文件,添加
export ANDROID_SDK=<your sdk path> export ANDROID_NDK=<your ndk path>
其中的路径根据实际情况填写。
2. 编译过程
进入ijkplayer源码根目录
cd config rm module.sh ln -s module-default.sh module.sh#以上是默认的设置,也可以使用# ln -s module-lite.sh module.sh
回到ijkplayer源码根目录
# 下载ffmpeg源码./init-android.shcd android/contrib ./compile-ffmpeg.sh clean#编译ffmpeg,,以armv7a架构的cpu代码为例进行编译./compile-ffmpeg.sh armv7a#编译ijkplayercd .. ./compile-ijk.sh armv7a
如果编译成功的话,会在
F:ijkplayerandroidijkplayerplayer-armv7asrcmainlibsarmeabi-v7a下生成三个so库文件
3. 编译过程中容易出问题的地方
注意:该步容易出问题,我在开始时编译只生成了一个libijkffmpeg.so。原因是F:ijkplayerandroidijkplayerplayer-armv7asrcmainjni下使用了软链接,ijkmedia和android-ndk-prof分别链接到ijkplayer根目录下的/ijkmedia和/ijkprof,而cygwin和android NDK在处理文件夹软链接时似乎有问题,所以并没有执行ijkmedia和ijkprof的编译。
基于以上问题,可以做如下修改
将ijkmedia和ijkprof的makefile文件写在F:ijkplayerandroidijkplayerplayer-armv7asrcmainjniAndroid.mk
文件的最后,用include包含进来删除F:ijkplayerandroidijkplayerplayer-armv7asrcmainjni下的ijkmedia和android-ndk-prof
将compile-ijk.sh中生成android-ndk-prof链接文件的部分注释掉
4. 将工程导入eclipse中,编译并运行
File -> New -> Project -> Android Project from Existing CodeSelect android/ and import all project
编译后在真机运行即可
5. 参考文献
ijkplayer的github主页:https://github.com/Bilibili/ijkplayer
版权声明
1.本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行测试。
2.本站资源仅供学习和交流使用,版权归资源原作者所有,请在下载后24小时之内自觉删除。
3.若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,与本站无关。
4.若内容涉及侵权或违法信息,请联系本站管理员进行下架处理,邮箱ganice520@163.com(本站不支持其他投诉反馈渠道,谢谢合作)
发表评论