Android版VLC
这是VLC的官方Android移植版。
Android版VLC可以播放与经典VLC版本相同的所有文件,并具有音频和视频文件以及流媒体的媒体数据库功能。
项目结构
以下是vlc-android项目的当前文件夹结构:
- extension-api:应用程序扩展SDK(尚未发布)
- application:Android应用程序源代码,按模块组织
- buildsystem:构建脚本、CI和maven发布配置
- libvlc:LibVLC gradle模块,VLC源代码将被克隆到根目录的
vlc/
文件夹中 - medialibrary:媒体库gradle模块
LibVLC
LibVLC是嵌入VLC引擎的Android库,提供了许多多媒体功能,例如:
- 播放所有媒体文件格式、所有编解码器和所有流媒体协议
- 在每个平台上进行硬件和高效解码,最高可达8K
- 远程文件系统(SMB、FTP、SFTP、NFS...)和服务器(UPnP、DLNA)的网络浏览
- 带菜单导航的音频CD、DVD和蓝光播放
- 支持HDR,包括SDR流的色调映射
- 通过SPDIF和HDMI进行音频直通,包括Audio HD编解码器,如DD+、TrueHD或DTS-HD
- 支持视频和音频滤镜
- 支持360度视频和3D音频播放,包括Ambisonics
- 能够投射和流式传输到远程渲染器,如Chromecast和UPnP渲染器
还有更多功能。
你可以使用我们的LibVLC模块来驱动你自己的Android媒体播放器。
直接从Maven下载.aar
文件或从源代码构建。
请查看我们的示例代码。
许可证
Android版VLC使用GPLv2(或更高版本)许可。Android库实际上使其成为GPLv3应用程序。
Android版VLC引擎(LibVLC)使用LGPLv2许可。
构建
原生库发布在bintray上。因此你可以:
- 构建应用程序并通过gradle依赖获取库(仅JVM构建)
- 构建整个应用(LibVLC + Medialibrary + 应用程序)
- 仅构建LibVLC,并获得一个.aar包
构建应用程序
VLC-Android构建依赖于gradle构建模式:
Release
和Debug
将从Bintray获取LibVLC和Medialibrary,并仅构建应用程序源代码。SignedRelease
也是如此,但它允许你使用本地密钥库签名应用程序apk。Dev
将构建LibVLC、Medialibrary,然后使用这些二进制文件构建应用程序。(仅通过构建脚本)
构建LibVLC
你需要一个较新的Linux发行版来构建VLC。 它应该可以在Windows 10和macOS上运行,但没有官方支持。
设置
查看我们的AndroidCompile wiki页面,特别是关于构建依赖项。
以下是要点:
在Debian/Ubuntu上,安装所需的依赖项:
sudo apt install automake ant autopoint cmake build-essential libtool-bin \
patch pkg-config protobuf-compiler ragel subversion unzip git \
openjdk-8-jre openjdk-8-jdk flex python wget
设置构建环境:
将$ANDROID_SDK
设置为指向你的Android SDK目录
export ANDROID_SDK=/path/to/android-sdk
将$ANDROID_NDK
设置为指向你的Android NDK目录
export ANDROID_NDK=/path/to/android-ndk
然后,你就可以开始构建了!
构建
buildsystem/compile.sh -l -a <ABI>
ABI可以是arm
、arm64
、x86
、x86_64
或all
用于多ABI构建
你可以使用-r
参数进行库发布构建
媒体库
使用-ml
而不是-l
来构建媒体库
贡献
VLC是一个自由开源项目,我们欢迎所有的贡献。
请遵守我们的行为准则,如果你想为UI做贡献或添加新功能,请先提出问题,以便进行讨论。
拉取请求
拉取请求必须在我们的gitlab服务器上提出。
因此,你必须创建一个帐户,fork vlc-android项目,然后从中提出合并请求。
翻译除外,请参阅下面的部分。
翻译
你也可以通过加入transifex vlc项目来帮助改进翻译。
翻译合并请求随后从transifex的工作中生成。
问题和功能请求
Android版VLC的错误追踪器托管在VideoLAN gitlab上。 请查找现有问题,并提供尽可能多的有用详细信息(例如vlc应用版本、设备和Android版本)。
我们提供了一个模板,请使用它!
没有相关信息的问题将被忽略,我们无法在这种情况下提供帮助。
支持
- Android邮件列表:android@videolan.org
- 错误追踪器:https://code.videolan.org/videolan/vlc-android/issues
- IRC:freenode上的*#videolan*频道
- VideoLAN论坛:https://forum.videolan.org/