《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“3.4.1 通用音視頻播放器”介紹瞭如何在桌面系統上安裝和使用通用音視頻播放器VLC media player,其實VLC是個跨平台的播放器,它也提供了面向Android平台的手機版VLC。
Android版VLC的官網地址是 https://code.videolan.org/videolan/libvlc-android ,源碼託管地址為 https://github.com/videolan/vlc-android (星星數3.3k),國內鏡像地址是 https://gitcode.com/gh_mirrors/vl/vlc-android 。最新版本為2025年9月發佈的libvlc-3.6.4,可見該框架的源碼更新十分及時,該版本的源碼下載鏈接為 https://github.com/videolan/vlc-android/archive/refs/tags/libvlc-3.6.4.tar.gz 。
Android版的VLC可以播放桌面版VLC支持的所有文件,並擁有音頻、視頻文件和網絡串流的媒體數據庫。vlc-android是嵌入VLC引擎的Android庫,它提供了下列的多媒體功能:
1、支持播放所有媒體文件格式、所有編解碼器以及所有流媒體協議
2、硬件支持,每個平台都能高效解碼,最高可達8K分辨率
3、通過菜單導航播放音頻CD、DVD和藍光光盤
4、支持HDR,包括為SDR流進行色調映射
5、支持視頻和音頻過濾器
6、支持360度視頻和3D音頻播放,包括Ambisonics
vlc-android採用Kotlin語言編寫,接下來以Android Studio Ladybug(小瓢蟲版本)為例,介紹如何通過Android Studio編譯運行vlc-android工程。
一、補充gradle目錄
下載完的vlc-android源碼包缺少gradle目錄,不能被Android Studio直接打開,需要先把其他App項目的gradle目錄整個複製過來,並且打開gradle/gradle-wrapper.properties,把distributionUrl這行配置改成下面這樣,表示使用8.14版本的Gradle
distributionUrl=https://services.gradle.org/distributions/gradle-8.14-bin.zip
二、調整AGP配置
1、因為Android Studio Ladybug最高只支持到 AGP 8.7,所以打開項目級別的build.gradle,把下面這行
ext.android_plugin_version = '8.11.1'
改為下面這樣
ext.android_plugin_version = '8.7.1'
2、打開settings.gradle,把下面這行
id("com.android.settings") version '8.11.1'
改為下面這樣
id("com.android.settings") version '8.7.1'
3、打開settings.gradle,註釋掉下面這行
targetSdk = 36
三、修改編譯用的JDK版本
在Android Studio主界面依次選擇菜單:File→Settings→Build,Execution,Deployment→Build Tools→Gradle,把Gradle JDK欄的版本調整為JDK17。
因為Android Studio Ladybug自帶的JDK版本為21,在編譯時會報錯:“Java compiler version 21 has deprecated support for compiling with source/target version 8.”。
四、屏蔽掉revision
1、打開application/vlc-android/build.gradle,註釋下面這行
resValue "string", "build_revision", revision()
這是因為revision()會調用git命令,一旦命令執行失敗就會導致App工程無法編譯。
2、打開application/vlc-android/src/org/videolan/vlc/gui/dialogs/AboutVersionDialog.kt,註釋掉下面這行:
binding.revision.text = getString(R.string.build_revision)
完成以上四處修改後,重新編譯App安裝到真機上,啓動後的VLC界面如下圖所示:
可見vlc-android會主動搜索手機上的視頻文件,並且支持視頻、音頻、瀏覽、播放列表以及更多菜單,具備桌面版VLC media player擁有的大部分功能。
更多詳細的FFmpeg開發知識參見《FFmpeg開發實戰:從零基礎到短視頻上線》一書。