ijkPlayer的编译

环境准备

硬件环境:PC机一台

操作系统:Ubuntu 12.04(我是Ubuntu+XP双系统)

软件环境:除Ubuntu预装的所有应用,还需要以下工具:git, ant, ccache, sdk, ndk。

其中git,ant和ccache直接使用sudo apt-get install XXX安装即可。

sdk和ndk可以在android developer网站下载,下面给出分别的下载地址:

http://dl.google.com/android/ndk/android-ndk-r9b-linux-x86.tar.bz2

http://dl.google.com/android/adt/adt-bundle-linux-x86-20130917.zip

【注】git, ant, ccache工具的说明可以参考百度/谷歌等网络资料。

编译前的准备

1. 在$HOME目录下建立一个Development文件夹,后续我们所有的代码均放到该目录下

2. 将下载好的adt和ndk拷贝到刚才创建的Development文件夹中,并直接解压

tar xf android-ndk-r9b-linux-x86.tar.bz2

unzip adt-bundle-linux-x86-20130917.zip

3. 配置环境变量

设置ANDROID_SDK和ANDROID_NDK环境变量,并添加PATH环境变量中。

修改$HOME/.bashrc文件,在最后面添加如下代码:

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. export ANDROID_SDK=~/Development/adt-bundle-linux-x86-20130917/sdk  
  2. export ANDROID_NDK=~/Development/android-ndk-r9b  
  3. export PATH=$PATH:$ANDROID_SDK:$ANDROID_NDK:$ANDROID_SDK/platform-tools/  
其中将$ANDROID_SDK/platform-tools/添加到PATH环境变量中,这样就将一些adb调试的工具添加到环境变量中,可以方便连接设备调试。

4. 下载ijkplayer的代码

因为我们研究的对象ijkplayer是github上的一个开源项目,因此使用git下载其版本管理库:

git clone https://github.com/bbcallen/ijkplayer.git

【注】ijkplayer更多的信息请参考githuab上项目页面:https://github.com/bbcallen/ijkplayer

编译ijkplayer库

进入到ijkplayer目录

cd ijkplayer

执行init-android.sh脚本,脚本的主要作用是下载ffmpeg源码。

sh init-android.sh

执行完成后,下载好的ffmpeg源码会放到android/ffmpeg-armv7a目录。

进入android目录下,执行compile-ffmpeg.sh脚本即可完成ffmpeg的编译

cd android

sh compile-ffmpeg.sh

然后,在执行compile-ijk.sh脚本,完成ijk部分的编译。

sh compile-ijk.sh

编译后会生成如下的文件:

ijkmediaplayer/libs/armeabi-v7a/libffmpeg.so
ijkmediaplayer/libs/armeabi-v7a/libijkplayer.so
ijkmediaplayer/libs/armeabi-v7a/libijksdl.so
ijkmediaplayer/libs/armeabi-v7a/libijkutil.so
ijkmediaplayer/libs/armeabi-v7a/libstlport_shared.so

编译ijkplayer Demo

打开eclipse(我们刚才下载的adt中除了sdk还有一个配置好的eclipse,位于~/Development/adt-bundle-linux-x86-20130917/eclipse/目录中),打开后直接就可以创建/使用android project。

将位于~/Development/ijkplayer/android/目录的三个android工程导入到eclipse中。其中ijkmediaplayer和ijkmediawidget两个工程编译出来的是jar包和so库,真正可以编译成apk的是ijkmediademo工程。

因为eclipse配置了自动构建,因此导入工程后,即开始自动构建。但是初次构建会失败,报出如下错误:

Cannot run program "ndk-build": Unknown reason
Error: Program "ndk-build" is not found in PATH

而我们明明在命令行,直接输入ndk-build是可以正常使用的,即ndk-build确实是在PATH中,这与当前的error信息不符。

结合在windows上的android开发经验,再加上查询其它网络资料,应该是eclipse本身没有配置ndk的原因。

在eclipse-->Preferences-->Android-->NDK中,设置好正确的ndk路径:~/Development/android-ndk-r9b。

然后,重新clean project --> build project --> run,即可在手机或者AVD上调试demo应用。


### 关于 ijkplayer 完整编译教程 #### 下载源码 为了获取 `ijkplayer` 源码,需执行如下命令来克隆仓库至本地环境。对于 Android 平台而言: ```bash git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android ``` 此操作会创建名为 `ijkplayer-android` 的文件夹并从中可以找到项目所需资源[^1]。 #### 准备工作 进入已下载的源代码根目录之后,需要切换到特定分支以确保获得稳定版本。例如,在桌面路径下可输入以下命令完成这一动作: ```bash cd ~/Desktop/ijkplayer/ git checkout -B latest k0.8.8 ``` 这里假设使用的标签为 `k0.8.8`,实际应用时应根据 GitHub 上最新的发布信息调整相应参数[^4]。 #### 配置编码解码器支持 接下来要做的就是设置想要启用的各种音频视频编解码格式的支持选项。这一步骤通常涉及到修改配置脚本中的某些变量定义或是通过命令行传递额外参数给构建工具链。具体细节取决于所选平台以及个人需求偏好[^3]。 #### 编译依赖库 在正式开始编译之前还需要先处理一些外部依赖项,比如 FFmpeg、libyuv 和 soundtouch 等第三方组件。这些库是实现多媒体功能不可或缺的部分,因此务必按照官方文档指导正确安装它们。特别是针对 FFmpeg 的编译环节可能较为复杂,建议仔细阅读相关指南。 #### 执行编译过程 当一切准备就绪后就可以着手进行最终阶段的工作了—启动整个项目的编译流程。依据目标设备架构的不同(如 armeabi-v7a),生成相应的二进制文件将会被放置在一个指定位置,例如 `/ijkplayer/android/ijkplayer/ijkplayer-armv7a/src/main/libs/armeabi-v7a` 文件夹里[^2]。 #### 结果验证 最后不要忘记检查输出产物是否存在并且能够正常加载运行。如果遇到任何问题,则应回溯上述各个步骤逐一排查潜在错误直至成功解决问题为止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值