sudo apt install git2. 下载 和 安装 jdk8 2.1 下载
https://www.oracle.com/java/technologies/downloads/#java8
2.2 解压#解压 tar -zxvf jdk-8u333-linux-x64.tar.gz2.3 将解压后的jdk移动到 /usr/lib目录下
#在 /usr/lib 目录下创建 jdk 文件夹 sudo mkdir /usr/lib/jdk #将解压后的jdk移动到 /usr/lib/jdk目录下 sudo mv jdk1.8.0_333 /usr/lib/jdk #查看是否移动成功 ls /usr/lib/jdk2.4 配置java环境变量 2.4.1 安装gedit
sudo apt-get install gedit
sudo gedit /etc/profile2.4.2 在文件末尾添加下面的几行
#set java env
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_333
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
2.4.3 执行命令使得环境变量生效
source /etc/profile2.4.4 测试 java 是否安装成功
java -version3. 下载 AndroidSDK 3.1 下载
wget http://dl.google.com/android/android-sdk_r24.2-linux.tgz3.2 解压
tar -xvf android-sdk_r24.2-linux.tgz3.3 更新Android SDK
cd android-sdk-linux tools/android update sdk --no-ui
一直输入 y 即可,期间会下载很多版本的 sdk,我们只需要下载完 4.x 版本就可以 ctrl+c 手动停止下载了。
3.4 配置环境变量sudo gedit /etc/profile
在末尾添加下面几行
注意:这里的路径一定要设置成你自己的,不要照抄
# Android sdk export ANDROID_SDK=/home/hg/android-sdk-linux export PATH=$ANDROID_SDK:$PATH3.5 使环境变量生效
source /etc/profile4. 下载 和 配置 Android NDK 4.1 下载
cd ~ wget https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip4.2 解压
unzip android-ndk-r14b-linux-x86_64.zip4.3 配置环境变量
sudo gedit /etc/profile
按照自己的路径配置
# set ndk environment export ANDROID_NDK=/home/hg/android-ndk-r14b export PATH=$ANDROID_NDK:$PATH
使环境变量生效
source /etc/profile
校验是否⽣效
ndk-build --version5. 下载配置 ijkplayer 5.1 下载ijkplayer
cd ~ mkdir ijkplayer cd ijkplayer git clone https://gitee.com/mirrors/ijkplayer.git ijkplayer-android cd ijkplayer-android git checkout -B latest5.2 修改init-android脚本
从github下载ffmpeg、libyuv超级慢,这⾥改成码云的链接
cd ~/ijkplayer/ijkplayer-android gedit init-android.sh
需改两行git的链接为 https://gitee.com/yuazhen/FFmpeg.git
并且注释掉除了 armv7a 以外的芯片架构
gedit init-android-libyuv.sh
修改这两行 git 链接为 https://gitee.com/yuazhen/libyuv.git
这个脚本会下载 ffmpeg-armv7a libyuvbase libyuv soundtouch 等库
./init-android.sh5.4 修改 init-android-openssl.sh
gedit init-android-openssl.sh
修改为码云链接 https://gitee.com/yuazhen/openssl.git
并且注释掉除了 armv7a 以外的
会下载 openssl base 和 openssl armv7a
./init-android-openssl.sh6.配置编解码器格式
cd config/ gedit module-default.sh
在文件末尾添加下面两行
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-linux-perf" export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-bzlib"
rm module.sh ln -s module-default.sh module.sh7. 编译openssl 7.1 编译
cd /home/hg/ijkplayer/ijkplayer-android cd android/contrib/ ./compile-openssl.sh clean ./compile-openssl.sh armv7a
执行到最后一个命令 ./compile-openssl.sh armv7a 会报错,如下
ERROR: Failed to create toolchain.
原因是没安装 python
sudo apt-get install python7.3 再次执行编译
# 清除 openssl 的编译⽂件 ./compile-openssl.sh clean # 编译 openssl ./compile-openssl.sh armv7a
编译成功
./compile-ffmpeg.sh clean ./compile-ffmpeg.sh armv7a
编译成功
cd .. ./compile-ijk.sh clean ./compile-ijk.sh armv7a
编译成功,生成了所有的库
zip -r ijkplayer.zip ijkplayer/10.2 将压缩后的 ijkplayer.zip 拷贝到 windows ,并解压缩
使用 android studio 打开它
导入ijkplayer工程后会报错
点击下面的
不要使用自带的模拟器,因为自带的模拟器不是arm-v7a的
如果你的android studio 是 3.0 的错误很快都会解决。如果是 4.0 的那么还会有很多报错,按照下面的步骤解决即可:
maven {
url 'https://maven.aliyun.com/repository/public/'
}
maven{
url 'https://maven.aliyun.com/repository/google/'
}
google()
mavenCentral()
11.2 修改gradle版本为本地的 gradle7.0.2
11.3 修改jdk版本为本地的 jdk14
11.4 将所有module 中的 compile 修改为 implementation
再次编译后成功
flavorDimensions("ijk")
splits {
abi {
enable true
reset()
include 'armeabi-v7a'
universalApk false
}
}
11.6 编译通过
sync 一下,然后点击编译
编译成功
但是运行后发现界面上面没有列出文件,原因应该是不能访问根目录
12. 解决不能访问目录的问题
将 path 改为本app的目录,并且在这个目录下上传一个视频
“/data/data/tv.danmaku.ijk.media.example/files/”
重新运行,可以看到列出了视频,而且可以播放



