news 2026/6/23 18:05:17

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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界面如下图所示:

vlc1

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 3:18:44

PostgreSQL实时数据同步:5分钟掌握pg_replicate终极指南

PostgreSQL实时数据同步:5分钟掌握pg_replicate终极指南 【免费下载链接】pg_replicate Build Postgres replication apps in Rust 项目地址: https://gitcode.com/gh_mirrors/pg/pg_replicate PostgreSQL作为业界领先的开源关系数据库,其数据复制…

作者头像 李华
网站建设 2026/6/23 16:00:18

Monkey‘s Audio(无损音频压缩器)

链接:https://pan.quark.cn/s/4cef50ed0d24Monkey’s Audio是一套快速且易于操作的数字音乐压缩方案,可将WAV转成APE的音乐文件,他不像一般的MP3或OGG音乐格式,为了节省空间而失去了应有的音乐品质。强调的是保有原来的高品质音质…

作者头像 李华
网站建设 2026/6/23 16:11:44

ChatPDF终极指南:5分钟学会与PDF文档智能对话

还在为翻阅冗长PDF文档而烦恼吗?ChatPDF让文档阅读变得像聊天一样简单!这个基于本地LLM的开源项目,通过先进的检索增强生成技术,让您能够与任何PDF、DOCX、TXT文件进行自然语言对话。 【免费下载链接】ChatPDF RAG for Local LLM,…

作者头像 李华
网站建设 2026/6/23 18:06:18

如何快速解决ComfyUI-SeedVR2依赖冲突:完整避坑指南

如何快速解决ComfyUI-SeedVR2依赖冲突:完整避坑指南 【免费下载链接】ComfyUI-SeedVR2_VideoUpscaler Non-Official SeedVR2 Vudeo Upscaler for ComfyUI 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-SeedVR2_VideoUpscaler ComfyUI-SeedVR2视频超…

作者头像 李华
网站建设 2026/6/23 13:19:03

Java并发编程利器:从ConcurrentHashMap到Fork/Join的奇幻之旅

言:为什么我们需要并发容器?想象一下传统的超市结账场景:只有一个收银台,所有人排成一队,效率低下。这就是传统集合在多线程环境下的写照。而现代并发容器就像拥有多个收银台的智能超市:多个收银台同时工作…

作者头像 李华
网站建设 2026/6/17 16:51:13

5分钟掌握IOPaint集成:从零部署到深度定制全攻略

5分钟掌握IOPaint集成:从零部署到深度定制全攻略 【免费下载链接】IOPaint 项目地址: https://gitcode.com/GitHub_Trending/io/IOPaint 你是否在为网站添加专业图像编辑功能而烦恼?面对复杂的AI模型和繁琐的开发流程,很多开发者望而…

作者头像 李华