栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

编译和使用 ijkplayer

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

编译和使用 ijkplayer

1. 下载git
sudo apt install git

2. 下载 和 安装 jdk8 2.1 下载

https://www.oracle.com/java/technologies/downloads/#java8

2.2 解压
#解压
tar -zxvf jdk-8u333-linux-x64.tar.gz

2.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/jdk

2.4 配置java环境变量 2.4.1 安装gedit
sudo apt-get install gedit

sudo gedit /etc/profile
2.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/profile

2.4.4 测试 java 是否安装成功
java -version

3. 下载 AndroidSDK 3.1 下载
wget http://dl.google.com/android/android-sdk_r24.2-linux.tgz

3.2 解压
tar -xvf android-sdk_r24.2-linux.tgz

3.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:$PATH

3.5 使环境变量生效
source /etc/profile
4. 下载 和 配置 Android NDK 4.1 下载
cd ~
wget https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip
4.2 解压
unzip android-ndk-r14b-linux-x86_64.zip
4.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 --version
5. 下载配置 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 latest
5.2 修改init-android脚本

从github下载ffmpeg、libyuv超级慢,这⾥改成码云的链接

cd  ~/ijkplayer/ijkplayer-android
gedit init-android.sh

需改两行git的链接为 https://gitee.com/yuazhen/FFmpeg.git
并且注释掉除了 armv7a 以外的芯片架构

5.3 修改 init-android-libyuv.sh
gedit init-android-libyuv.sh

修改这两行 git 链接为 https://gitee.com/yuazhen/libyuv.git

5.3 执行 init-android.sh

这个脚本会下载 ffmpeg-armv7a libyuvbase libyuv soundtouch 等库

./init-android.sh
5.4 修改 init-android-openssl.sh
gedit init-android-openssl.sh

修改为码云链接 https://gitee.com/yuazhen/openssl.git
并且注释掉除了 armv7a 以外的

5.5 执行 ./init-android-openssl.sh

会下载 openssl base 和 openssl armv7a

./init-android-openssl.sh
6.配置编解码器格式
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.sh

7. 编译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

7.2 安装 python 解决报错
sudo apt-get install python
7.3 再次执行编译
# 清除 openssl 的编译⽂件 
./compile-openssl.sh clean 
# 编译 openssl 
./compile-openssl.sh armv7a

编译成功

8. 编译ffmpeg
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh armv7a

编译成功

9. 编译compile-ijk
cd .. 
./compile-ijk.sh clean 
./compile-ijk.sh armv7a

编译成功,生成了所有的库

10. 迁移 ijkplayer 到 android studio 10.1 压缩 ijkplayer
zip -r ijkplayer.zip ijkplayer/

10.2 将压缩后的 ijkplayer.zip 拷贝到 windows ,并解压缩



使用 android studio 打开它

11. 修改ijkplayer工程的各种配置

导入ijkplayer工程后会报错

点击下面的

不要使用自带的模拟器,因为自带的模拟器不是arm-v7a的
如果你的android studio 是 3.0 的错误很快都会解决。如果是 4.0 的那么还会有很多报错,按照下面的步骤解决即可:

11.1 修改仓库

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









再次编译后成功

11.5 增加so库配置

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/”



重新运行,可以看到列出了视频,而且可以播放

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1009389.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号