当前位置: 首页 > news >正文

ijkplayer Android 编译

一、下载编译库文件

1.1 编译库文件环境:ubuntu 20.04 版本

liangtao:ffmpeg$lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.6 LTS
Release:	20.04
Codename:	focal

1.2 项目源码下载

使用 git 下载 ijkplayer;wget 下载 NDK

# 下载 ijkplayer 命令
git clone https://github.com/bilibili/ijkplayer# 下载 ndk 命令
wget https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip

1.3 临时配置 NDK

# 解压 NDK
unzip android-ndk-r14b-linux-x86_64.zip# 重命名 NDK
mv android-ndk-r14b ndk-r14b# 临时配置 NDK; YourPath 是自己的路径
export ANDROID_NDK=/YourPath/ndk-r14b
export PATH=$ANDROID_NDK:$PATH

1.4 初始化 ijkplayer

# 进入 ijkplayer 目录
cd ijkplayer# 切换到最新版本
git checkout -B k0.8.8# 初始化
./init-android.sh

初始化时会失败,将 armv5、x86、x86_64 注释掉就行;如果还是下载失败,可以使用国内的源,具体方法可以百度,或者在 B 站上找;

#pull_fork "armv5"
pull_fork "armv7a"
#pull_fork "arm64"
#pull_fork "x86"
#pull_fork "x86_64"

1.5 编译,我没有编译 openssl 库,因为我暂时用不到;

配置了 NDK 环境变量的前提下才能编译;

## 编译 ffmpeg
# 进入 ijkplayer/android/contrib 目录
cd ijkplayer/android/contrib# 先清除再编译
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh armv7a## 编译 ijkplayer.so
# 进入 ijkplayer/android 目录
cd ijkplayer/android# 先清除再编译
./compile-ijk.sh clean
./compile-ijk.sh armv7a

二、使用 android studio(4.0.2 版本) 编译出 demo apk

电脑系统版本为:win11

android studio 历史版本在以下网址可以找到

https://developer.android.google.cn/studio/archive

我选择的是:Android Studio 4.0.2 October 6,2020 版本的 64-bit 的 exe 文件;

android studio 的 jdk 我使用的是 java 8,具体版本为:corretto-1.8.0_462

将刚刚编译的 ijkplayer/android 目录下的 ijkplayer 文件夹打包,拷贝到 windows 下,使用 Android Studio 打开;

会报错,修改如下:

# 修改文件如下
ijkplayer/build.gradle# 将以下信息注释
//classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7'# 将以下信息替换为阿里源
# 修改前
allprojects {repositories {jcenter()}
}# 修改后
allprojects {repositories {// 阿里云 Maven 镜像maven { url 'https://maven.aliyun.com/repository/public' }// 阿里云 Google Maven 镜像(可选)maven { url 'https://maven.aliyun.com/repository/google' }// 阿里云 JCenter 镜像(可选)maven { url 'https://maven.aliyun.com/repository/jcenter' }// 本地仓库mavenLocal()// 原本的 Maven Central(可以保留)mavenCentral()}
}

重新加载完毕就能编译出 apk 在以下路径;如果还有报错,就将工程关闭重新打开就行;

http://www.dtcms.com/a/341034.html

相关文章:

  • strncpy 函数使用及其模拟实现
  • AI重塑软件测试:质量保障的下一站
  • 成本管控:餐饮利润的隐形守护者
  • Zemax光学设计输出3D
  • 4位量化:常规的线性层被替换成了4位线性层(48)
  • 酶 EC number 预测工具CLEAN的安装和使用
  • QT官方库头文件找不到(添加模块方法)
  • C++模板元编程:从SFINAE到Concepts的进化史
  • mac 搭建docker-compose,部署docker应用
  • AI on Mac, Your Way!全本地化智能代理,隐私与性能兼得
  • pcl求平面点云的边界凸包点
  • Frida Hook Android Activity生命周期全方法监控方案
  • 哈希:字母异位词分组
  • RHCA07-Linux跟踪工具及CPU调优
  • Linux I/O 多路复用实战:深入剖析 Select 与 Poll
  • capsh 命令详解
  • 【机器学习深度学习】Ollama、vLLM、LMDeploy对比:选择适合你的 LLM 推理框架
  • Objective-C 版本的 LiveEventBus 效果
  • vue+openlayers示例:适配arcgis矢量瓦片服务以及样式(附源码下载)
  • 英伟达Blackwell架构下的中国特供版AI芯片:B30A与RTX 6000D,是技术妥协还是市场新策略?
  • 基于单片机太阳能充电器/太阳能转换电能
  • C端高并发项目都有哪些
  • Angular由一个bug说起之十八:伴随框架升级而升级ESLint遇到的问题与思考
  • C++围绕音视频相关的资料都有哪些?如何进行学习
  • 实现自己的AI视频监控系统-第一章-视频拉流与解码2
  • 【ansible】4.实施任务控制
  • 【沉浸式解决问题】peewee.ImproperlyConfigured: MySQL driver not installed!
  • 亚马逊运营破局:销量与ACOS的动态平衡之道
  • 网页作品惊艳亮相!这个浪浪山小妖怪网站太治愈了!
  • 8 月中 汇报下近半个月都在做些什么