A visually appealing and feature-rich Flutter music player
See the code
Vynody 是一款以本地音乐播放为核心的跨平台播放器,使用 Flutter 构建界面,并根据不同平台接入对应的原生音频内核,兼顾统一体验与底层能力。
项目当前面向以下平台:
| 平台 | 获取渠道 | 链接 |
|---|---|---|
| iOS / macOS | Apple App Store | 前往 App Store 下载 |
| Windows | 微软应用商店 | 前往 Microsoft Store 获取 |
| 全部平台 | GitHub Releases | GitHub Releases 下载页面 |
Vynody 并不是所有平台都共用同一套播放器内核,而是按平台采用不同实现:
| 平台 | 播放内核 |
|---|---|
| Windows | Audio Core(Rust,支持 WASAPI 独占模式) |
| Linux | Audio Core(Rust) |
| macOS | Audio Core(Rust / AVFoundation + FFmpeg 兜底) |
| iOS | Audio Core(Rust / AVFoundation + FFmpeg 兜底) |
| Android | ExoPlayer(Media3 + FFmpeg 兜底) |
这种设计的目标是:在保证跨平台 UI 一致性的同时,尽量利用各平台成熟的底层音频能力。
针对标签不完整或信息缺失的音频文件,Vynody 支持在线补全歌曲元数据。
这部分能力尤其适合整理来源较杂、标签质量不一致的本地曲库。
项目内置在线歌词搜索与获取能力,当前可接入:
可用于:
AI 歌词生成和翻译需要在应用设置中配置受支持服务商的 API Key。生成结果可能需要人工检查和微调。
Vynody 支持基于音频指纹的歌曲识别能力,可用于:
内置睡眠定时器,适合夜间听歌或临睡前使用。
Vynody 内置局域网共享能力,可在同一网络下与其他设备交换音乐文件和歌词数据。
这项能力适合在多台设备之间迁移曲库,或者把一台设备上整理好的歌词同步到另一台设备。
Vynody 支持无缝接入远程音乐服务器与云端存储:
项目整体采用“Flutter UI + 平台原生音频实现”的思路:
在线相关能力主要包括:
局域网共享相关能力主要包括:
不同平台还需要各自的系统依赖,例如:
git clone --recurse-submodules https://github.com/axel10/vynody
cd vynody
💡 如果您之前已经克隆了仓库但未使用
--recurse-submodules,请在构建前运行git submodule update --init以初始化audio_core模块。
flutter pub get
flutter run -d <device-id>
如果你是在桌面平台首次构建,通常还需要先确认 Flutter Desktop 与 Rust 工具链都已经可用。
项目中已经包含或预留了多项可配置能力,常见包括:
如果你准备长期使用歌曲标签补全和音频指纹识别,建议配置自己的 AcoustID API Key。
欢迎提交 issue 或 pull request。
如果你要参与开发,建议至少先完成以下检查:
flutter test
并尽量保持代码风格与现有工程结构一致。
本项目基于 GPL-3.0 开源。
Vynody is a cross-platform, local music player designed with a focus on local playback. It features a Flutter-based user interface and integrates platform-specific native audio engines, combining a unified user experience with deep native capabilities.
The project currently targets the following platforms:
| Platform | Channel | Link |
|---|---|---|
| iOS / macOS | Apple App Store | Download on App Store |
| Windows | Microsoft Store | Get from Microsoft Store |
| All Platforms | GitHub Releases | GitHub Releases |
Vynody does not use a single shared audio backend across all platforms. Instead, it utilizes the most suitable engine for each operating system:
| Platform | Audio Engine / Backend |
|---|---|
| Windows | Audio Core (Rust, including WASAPI exclusive mode) |
| Linux | Audio Core (Rust) |
| macOS | Audio Core (Rust / AVFoundation + FFmpeg fallback) |
| iOS | Audio Core (Rust / AVFoundation + FFmpeg fallback) |
| Android | ExoPlayer (Media3 + FFmpeg fallback) |
This design achieves a consistent cross-platform UI while fully leveraging the mature, low-level audio capabilities of each platform.
For audio files with incomplete tags or missing metadata, Vynody supports online completion:
The player includes built-in lyrics search and retrieval, currently integrated with:
Features include:
AI lyric generation and translation require an API key for a supported provider, configured in the app settings. Generated results may need review and manual adjustment.
Built-in audio fingerprinting enables identifying unknown audio files:
A built-in countdown timer designed for bedtime listening:
Vynody includes built-in local area network sharing capabilities to transfer music and lyrics between devices on the same subnet:
Perfect for syncing or migrating your local library between computers and mobile devices.
Vynody supports seamless integration with remote audio servers and cloud storage:
The project follows a "Flutter UI + Platform Native Audio Backend" architecture:
Online services and libraries used:
LAN sharing capabilities:
Platform-specific setup requirements:
git clone --recurse-submodules https://github.com/axel10/vynody
cd vynody
💡 If you already cloned the repository without
--recurse-submodules, rungit submodule update --initto initialize theaudio_coremodule before building.
flutter pub get
flutter run -d <device-id>
When building for a desktop platform for the first time, ensure that both the Flutter Desktop environment and the Rust toolchain are correctly configured.
The player supports various user settings, including:
[!TIP] If you plan to heavily use audio fingerprinting and metadata completion, we recommend getting and configuring your own AcoustID API Key.
Issues and Pull Requests are welcome!
Before contributing code, please run the tests and ensure they pass:
flutter test
Please adhere to the existing code style and structure.
This project is open-source and licensed under the GPL-3.0 License.
Dart
97.4%
A visually appealing and feature-rich Flutter music player
See the code
Vynody 是一款以本地音乐播放为核心的跨平台播放器,使用 Flutter 构建界面,并根据不同平台接入对应的原生音频内核,兼顾统一体验与底层能力。
项目当前面向以下平台:
| 平台 | 获取渠道 | 链接 |
|---|---|---|
| iOS / macOS | Apple App Store | 前往 App Store 下载 |
| Windows | 微软应用商店 | 前往 Microsoft Store 获取 |
| 全部平台 | GitHub Releases | GitHub Releases 下载页面 |
Vynody 并不是所有平台都共用同一套播放器内核,而是按平台采用不同实现:
| 平台 | 播放内核 |
|---|---|
| Windows | Audio Core(Rust,支持 WASAPI 独占模式) |
| Linux | Audio Core(Rust) |
| macOS | Audio Core(Rust / AVFoundation + FFmpeg 兜底) |
| iOS | Audio Core(Rust / AVFoundation + FFmpeg 兜底) |
| Android | ExoPlayer(Media3 + FFmpeg 兜底) |
这种设计的目标是:在保证跨平台 UI 一致性的同时,尽量利用各平台成熟的底层音频能力。
针对标签不完整或信息缺失的音频文件,Vynody 支持在线补全歌曲元数据。
这部分能力尤其适合整理来源较杂、标签质量不一致的本地曲库。
项目内置在线歌词搜索与获取能力,当前可接入:
可用于:
AI 歌词生成和翻译需要在应用设置中配置受支持服务商的 API Key。生成结果可能需要人工检查和微调。
Vynody 支持基于音频指纹的歌曲识别能力,可用于:
内置睡眠定时器,适合夜间听歌或临睡前使用。
Vynody 内置局域网共享能力,可在同一网络下与其他设备交换音乐文件和歌词数据。
这项能力适合在多台设备之间迁移曲库,或者把一台设备上整理好的歌词同步到另一台设备。
Vynody 支持无缝接入远程音乐服务器与云端存储:
项目整体采用“Flutter UI + 平台原生音频实现”的思路:
在线相关能力主要包括:
局域网共享相关能力主要包括:
不同平台还需要各自的系统依赖,例如:
git clone --recurse-submodules https://github.com/axel10/vynody
cd vynody
💡 如果您之前已经克隆了仓库但未使用
--recurse-submodules,请在构建前运行git submodule update --init以初始化audio_core模块。
flutter pub get
flutter run -d <device-id>
如果你是在桌面平台首次构建,通常还需要先确认 Flutter Desktop 与 Rust 工具链都已经可用。
项目中已经包含或预留了多项可配置能力,常见包括:
如果你准备长期使用歌曲标签补全和音频指纹识别,建议配置自己的 AcoustID API Key。
欢迎提交 issue 或 pull request。
如果你要参与开发,建议至少先完成以下检查:
flutter test
并尽量保持代码风格与现有工程结构一致。
本项目基于 GPL-3.0 开源。
Vynody is a cross-platform, local music player designed with a focus on local playback. It features a Flutter-based user interface and integrates platform-specific native audio engines, combining a unified user experience with deep native capabilities.
The project currently targets the following platforms:
| Platform | Channel | Link |
|---|---|---|
| iOS / macOS | Apple App Store | Download on App Store |
| Windows | Microsoft Store | Get from Microsoft Store |
| All Platforms | GitHub Releases | GitHub Releases |
Vynody does not use a single shared audio backend across all platforms. Instead, it utilizes the most suitable engine for each operating system:
| Platform | Audio Engine / Backend |
|---|---|
| Windows | Audio Core (Rust, including WASAPI exclusive mode) |
| Linux | Audio Core (Rust) |
| macOS | Audio Core (Rust / AVFoundation + FFmpeg fallback) |
| iOS | Audio Core (Rust / AVFoundation + FFmpeg fallback) |
| Android | ExoPlayer (Media3 + FFmpeg fallback) |
This design achieves a consistent cross-platform UI while fully leveraging the mature, low-level audio capabilities of each platform.
For audio files with incomplete tags or missing metadata, Vynody supports online completion:
The player includes built-in lyrics search and retrieval, currently integrated with:
Features include:
AI lyric generation and translation require an API key for a supported provider, configured in the app settings. Generated results may need review and manual adjustment.
Built-in audio fingerprinting enables identifying unknown audio files:
A built-in countdown timer designed for bedtime listening:
Vynody includes built-in local area network sharing capabilities to transfer music and lyrics between devices on the same subnet:
Perfect for syncing or migrating your local library between computers and mobile devices.
Vynody supports seamless integration with remote audio servers and cloud storage:
The project follows a "Flutter UI + Platform Native Audio Backend" architecture:
Online services and libraries used:
LAN sharing capabilities:
Platform-specific setup requirements:
git clone --recurse-submodules https://github.com/axel10/vynody
cd vynody
💡 If you already cloned the repository without
--recurse-submodules, rungit submodule update --initto initialize theaudio_coremodule before building.
flutter pub get
flutter run -d <device-id>
When building for a desktop platform for the first time, ensure that both the Flutter Desktop environment and the Rust toolchain are correctly configured.
The player supports various user settings, including:
[!TIP] If you plan to heavily use audio fingerprinting and metadata completion, we recommend getting and configuring your own AcoustID API Key.
Issues and Pull Requests are welcome!
Before contributing code, please run the tests and ensure they pass:
flutter test
Please adhere to the existing code style and structure.
This project is open-source and licensed under the GPL-3.0 License.
Dart
97.4%