您现在的位置是:首页 >技术教程 >ijkplayer编译成Android so库的详细教程网站首页技术教程
ijkplayer编译成Android so库的详细教程
步骤1:windows11安装linux子系统
步骤2:安装好Ubuntu后分别执行以下命令
sudo apt-get install git
sudo apt-get install yasn
步骤3:利用git命令,在ubuntu控制面板执行下载ijkplayer命令,将项目下载到到ubuntu文件目录下
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
执行完成后该项目被下载到../home/[用户名称]/ijkplayer-android 下。比如我的
步骤 4:配置jdk,sdk与ndk环境
4.1、配置jdk:去官网Java Downloads | Oracle下载jdk1.8,并按照ubuntu安装jdk1.8并配置环境变量_猫巳的博客-CSDN博客说明一步步配置好
4.2、配置sdk与ndk环境
去官网下载liunx版SDKhttps://developer.android.com/tools,下载最新的就行,解压放到ubuntu目录../home/[用户名]/sdk目录下,sdk目录为自定义名称。用text文本打开.bashrc文件,在最后加上
export ANDROID_SDK=/home/用户名称/sdk/platform-tools_r34.0.1-linux/platform-tools

下载liunx版NDKAndroid NDK下载(r10~r25) 持续更新_StoneLiu999的博客-CSDN博客,找到

,解压放到ubuntu目录../home/[用户名]/ndk目录下,ndk为自定义名称。用text文本打开.bashrc文件,在最后加上
ANDROID_NDK=/home/用户名称/ndk/android-ndk-r10e-linux-x86_64/android-ndk-r10e
export PATH=$ANDROID_NDK:$PATH
验证ndk配置是否成功:
执行 cd ~ 切换到用户跟目录,然后执行 ndk-build,出现下面字样即为成功

如果出现没有权限:

那么执行:chmod a+x -R 【ndk路径】
![]()
再执行 ndk-build 就可以了。
至此,前期环境配置已完成,接下来可以执行打包操作。
步骤5:编译ijkpler
先执行 cd ~ 然后执行 cd ijkplayer-android 切换到 项目ijkplayer目录下
5.1、用文本编辑器打开 init-android.sh文件,只保留(我这里只需要这两个架构的包)
pull_fork "armv7a"
pull_fork "arm64"
然后执行 ./init-android.sh 等待完成。
5.2、修改compile-ffmpeg.sh,进入andrid/contrib目录,用文本编辑器打开:
FF_ACT_ARCHS_32只保留armv7a,FF_ACT_ARCHS_64 只保留armv7a和arm64
FF_ACT_ARCHS_32="armv7a"
FF_ACT_ARCHS_64="armv7a arm64"
执行缓存清理:
切换到contrib目录:cd ./android/contrib
执行清理: ./compile-ffmpeg.sh clean
然后执行编译:./compile-ffmpeg.sh all
如果出现 tools/do-compile-ffmpeg.sh: 308: make: not found 问题
执行下命令: sudo apt-get install make
然后再重试
执行完之后,就会在ijkplayer-android/android/contrib/build/ffmpeg-armv7a/output 目录下生成 ffmpeg 的头文件和库文件.
5.3、修改compile-ijk.sh并编译
返回到上一层目录ijkplayer-android/android,修改compile-ijk.sh文件,ACT_ABI_32仅保留armv7a,ACT_ABI_64仅保留armv7a和arm64
ACT_ABI_32="armv7a"
ACT_ABI_64="armv7a arm64"
保存后执行命令:
返回到上一层目录ijkplayer-android/android: cd ..
执行编译:./compile-ijk.sh all
编译成功后,可以在ijkplayer-android/android/ijkplayer/ijkplayer-arm64/src/main/libs/arm64-v8a和ijkplayer-android/android/ijkplayer/ijkplayer-armv7a/src/main/libs/armeabi-v7a路径下找到打包好的so库
至此所有步骤均已完成。





U8W/U8W-Mini使用与常见问题解决
QT多线程的5种用法,通过使用线程解决UI主界面的耗时操作代码,防止界面卡死。...
stm32使用HAL库配置串口中断收发数据(保姆级教程)
分享几个国内免费的ChatGPT镜像网址(亲测有效)
Allegro16.6差分等长设置及走线总结