您现在的位置是:首页 >技术教程 >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库
至此所有步骤均已完成。