一、下载编译库文件

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.pswp.cn/web/93831.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/93831.shtml
英文地址,请注明出处:http://en.pswp.cn/web/93831.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

snn前向推理时间计算(处理器实现)

公式 Tinf(1−sparsity)number of synapsesnumber of sub-processorsSIMD ways T_{\text{inf}} \frac{(1-\text{sparsity})\times \text{number of synapses}} {\text{number of sub-processors}\times \text{SIMD ways}} Tinf​number of sub-processorsSIMD ways(1−sparsity…

Linux------《操作系统全景速览:Windows·macOS·Linux·Unix 对比及 Linux 发行版实战指南》

(一)常见操作系统(system)电脑:Windows,Macos,Linux,UnixWindows:微软公司开发的一款桌面操作系统(闭源系统)。版本有dos,win98,win NT,win XP , …

Three.js 初级教程大全

本文档旨在为初学者提供一个全面的 Three.js 入门指南。我们将从 Three.js 的基本概念开始,逐步介绍如何创建场景、添加物体、设置材质、使用光照和相机,以及如何实现简单的动画和交互。通过本教程,你将能够掌握 Three.js 的核心知识&#xf…

遥感领域解决方案丨高光谱、无人机多光谱、空天地数据识别与计算

一:AI智慧高光谱遥感实战:手撕99个案例项目、全覆盖技术链与应用场景一站式提升方案在遥感技术飞速发展的今天,高光谱数据以其独特的光谱分辨率成为环境监测、精准农业、地质勘探等领域的核心数据源。然而,海量的波段数据、复杂的…

(LeetCode 面试经典 150 题) 114. 二叉树展开为链表 (深度优先搜索dfs+链表)

题目:114. 二叉树展开为链表 思路:深度优先搜索dfs链表,时间复杂度0(n)。 C版本: /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : …

《线程状态转换深度解析:从阻塞到就绪的底层原理》

目录 一、线程的五种基本状态 二、线程从 RUNNABLE 进入阻塞 / 等待状态的三种典型场景 1. 调用sleep(long millis):进入 TIMED_WAITING 状态 2. 调用wait():进入 WAITING/TIMED_WAITING 状态 3. 等待 I/O 资源或获取锁失败:进入 BLOCKE…

面经整理-猿辅导-内容服务后端-java实习

部门管理系统设计 题目要求 设计部门 MySQL 数据表实现接口:根据中间部门 ID 获取其下属叶子部门 ID设计包含子节点列表的 Java 数据对象,并实现批量获取功能 一、MySQL 部门表设计 表结构 CREATE TABLE department (id BIGINT PRIMARY KEY AUTO_INCREME…

Openharmony之window_manager子系统源码、需求定制详解

1. 模块概述 Window Manager 模块是 OpenHarmony 操作系统的核心窗口管理系统,负责窗口的创建、销毁、布局、焦点管理、动画效果以及与硬件显示的交互。该模块采用客户端-服务端架构,提供完整的窗口生命周期管理和用户界面交互支持。 1.1架构总览 Window Manager Client 应…

《CDN加速的安全隐患与解决办法:如何构建更安全的网络加速体系》

CDN(内容分发网络)作为提升网站访问速度的关键技术,被广泛应用于各类互联网服务中。然而,在享受加速优势的同时,CDN也面临诸多安全隐患。本文将解析常见的CDN安全问题,并提供实用的解决办法,帮助…

【Linux指南】GCC/G++编译器:庖丁解牛——从源码到可执行文件的奇幻之旅

不只是简单的 gcc hello.c 每一位Linux C/C++开发者敲下的第一行编译命令,几乎都是 gcc hello.c -o hello 或 g++ hello.cpp -o hello。这像一句神奇的咒语,将人类可读的源代码变成了机器可执行的二进制文件。但在这条简单的命令背后,隐藏着一个如同精密钟表般复杂的多步流…

地区电影市场分析:用Python爬虫抓取猫眼_灯塔专业版各地区票房

在当今高度数据驱动的影视行业,精准把握地区票房表现是制片方、宣发团队和影院经理做出关键决策的基础。一部电影在北上广深的表现与二三线城市有何差异?哪种类型的电影在特定区域更受欢迎?回答这些问题,不能再依赖“拍脑袋”和经…

Spark03-RDD02-常用的Action算子

一、常用的Action算子 1-1、countByKey算子 作用:统计key出现的次数,一般适用于K-V型的RDD。 【注意】: 1、collect()是RDD的算子,此时的Action算子,没有生成新的RDD,所以,没有collect()&…

[Android] 显示的内容被导航栏这挡住

上图中弹出的对话框的按钮“Cancel/Save”被导航栏遮挡了部分显示&#xff0c;影响了使用。Root cause: Android 应用的主题是 Theme.AppCompat.Light1. 修改 AndroidManifest.xml 将 application 标签的 android:theme 属性指向新的自定义主题&#xff1a;<applicationandr…

分贝单位全指南:从 dB 到 dBm、dBc

引言在射频、音频和通信工程中&#xff0c;我们经常会在示波器、频谱仪或测试报告里看到各种各样的dB单位&#xff0c;比如 dBm、dBc、dBV、dBFS 等。它们看起来都带个 dB&#xff0c;实则各有不同的定义和参考基准&#xff1a;有的表示相对功率&#xff0c;有的表示电压电平&a…

怎么确定mysql 链接成功了呢?

asyncio.run(test_connection()) ✗ Connection failed: cryptography package is required for sha256_password or caching_sha2_password auth methods 根据你提供的错误信息,问题出现在 MySQL 的认证插件和加密连接配置上。以下是几种解决方法: 1. 安装 cryptography 包…

(5)软件包管理器 yum | Vim 编辑器 | Vim 文本批量化操作 | 配置 Vim

Ⅰ . Linux 软件包管理器 yum01 安装软件在 Linux 下安装软件并不像 Windows 下那么方便&#xff0c;最通常的方式是去下载程序的源代码并进行编译&#xff0c;从而得到可执行程序。正是因为太麻烦&#xff0c;所以有些人就把一些常用的软件提前编译好并做成软件包&#xff0c;…

VGG改进(3):基于Cross Attention的VGG16增强方案

第一部分&#xff1a;交叉注意力机制解析1.1 注意力机制基础注意力机制的核心思想是模拟人类的选择性注意力——在处理信息时&#xff0c;对重要部分分配更多"注意力"。在神经网络中&#xff0c;这意味着模型可以学习动态地加权输入的不同部分。传统的自注意力(Self-…

代理ip平台哪家好?专业代理IP服务商测评排行推荐

随着互联网的深度发展&#xff0c;通过网络来获取全球化的信息资源&#xff0c;已成为企业与机构在竞争中保持优势的一大举措。但想要获取其他地区的信息&#xff0c;可能需要我们通过代理IP来实现。代理IP平台哪家好&#xff1f;下文就让我们从IP池资源与技术优势等细节&#…

PWA》》以京东为例安装到PC端

如果访问 浏览器右侧出现 安装 或 点击这个 也可以完成安装桌面 会出现 如下图标

Linux系统:C语言进程间通信信号(Signal)

1. 引言&#xff1a;从"中断"到"信号"想象一下&#xff0c;你正在书房专心致志地写代码&#xff0c;这时厨房的水烧开了&#xff0c;鸣笛声大作。你会怎么做&#xff1f;你会暂停&#xff08;Interrupt&#xff09; 手头的工作&#xff0c;跑去厨房关掉烧水…