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.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;跑去廚房關掉燒水…