windows下用cygwin编译android版ijkplayer

1. 环境搭建

1.1 安装cygwin,并安装git,make,ysam

具体安装过程网上有很多资料,不再详述。

1.2 android sdk和android ndk下载和安装

参见网上资料

1.3 下载ijkplayer源码

git clone https://github.com/Bilibili/ijkplayer.git ijkplayer
cd 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.sh

cd android/contrib
./compile-ffmpeg.sh clean
#编译ffmpeg,,以armv7a架构的cpu代码为例进行编译
./compile-ffmpeg.sh armv7a

#编译ijkplayer
cd ..
./compile-ijk.sh armv7a

如果编译成功的话,会在
F:\\ijkplayer\android\ijkplayer\player-armv7a\src\main\libs\armeabi-v7a下生成三个so库文件
编译生成的共享库

3. 编译过程中容易出问题的地方

注意:该步容易出问题,我在开始时编译只生成了一个libijkffmpeg.so。原因是F:\\ijkplayer\android\ijkplayer\player-armv7a\src\main\jni下使用了软链接,ijkmedia和android-ndk-prof分别链接到ijkplayer根目录下的/ijkmedia和/ijkprof,而cygwin和android NDK在处理文件夹软链接时似乎有问题,所以并没有执行ijkmedia和ijkprof的编译。

基于以上问题,可以做如下修改

  • 将ijkmedia和ijkprof的makefile文件写在F:\ijkplayer\android\ijkplayer\player-armv7a\src\main\jni\Android.mk
    文件的最后,用include包含进来
    这里写图片描述

  • 删除F:\ijkplayer\android\ijkplayer\player-armv7a\src\main\jni下的ijkmedia和android-ndk-prof

  • 将compile-ijk.sh中生成android-ndk-prof链接文件的部分注释掉
    这里写图片描述

4. 将工程导入eclipse中,编译并运行

File -> New -> Project -> Android Project from Existing Code
Select android/ and import all project

编译后在真机运行即可

5. 参考文献

ijkplayer的github主页:https://github.com/Bilibili/ijkplayer

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值