FFmpeg开发笔记(八十七)采用Kotlin的手机开源播放器VLC-Android

《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开发实战:从零基础到短视频上线》一书。

相关推荐
阿巴斯甜7 小时前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker7 小时前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq95278 小时前
Andorid Google 登录接入文档
android
黄林晴9 小时前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab1 天前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿1 天前
Android MediaPlayer 笔记
android
Jony_1 天前
Android 启动优化方案
android
阿巴斯甜1 天前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇1 天前
AOSP15 Input专题InputReader源码分析
android
_小马快跑_1 天前
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
android