您现在的位置是:首页 >技术教程 >ijkplayer编译成Android so库的详细教程网站首页技术教程

ijkplayer编译成Android so库的详细教程

枫Zzz.. 2024-06-21 18:01:02
简介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只保留armv7aFF_ACT_ARCHS_64 只保留armv7aarm64

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仅保留armv7aACT_ABI_64仅保留armv7aarm64

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-v8aijkplayer-android/android/ijkplayer/ijkplayer-armv7a/src/main/libs/armeabi-v7a路径下找到打包好的so库

至此所有步骤均已完成。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。