NAS Music TV

September 18, 2026 · View on GitHub

一款开源的 Android 音乐播放器(TV / 手机 / 平板通用):聚合 NAS(Jellyfin / Navidrome / Subsonic / 道理鱼 / 飞牛)、网络音乐与百度网盘多音乐源,支持逐字卡拉OK歌词、K 歌伴奏、MTV 音乐视频、天气电台等电视专属体验。同一 APK 同时适配电视(遥控器)与手机(触屏)。

Release

产品主页:https://hxzhang2000-nasmusic-sxhl.bolt.host/

⚠️ 百度网盘目录限制:根据百度开放平台 2026 年沙盒策略,第三方应用只能访问 /apps/NASMusicTV 目录及其子目录,无法读取该目录之外的任何文件。请将音乐文件放入百度网盘的 /apps/NASMusicTV/ 目录下(例如 /apps/NASMusicTV/音乐/),应用内首次使用时会自动创建该目录。放在 /apps/NASMusicTV/ 之外的文件将无法被本应用访问。

功能特性

首页仪表盘

  • 首页概览:启动即见当前播放状态、最近播放记录、实时天气与均衡器动态预览
  • 播放统计:自动记录每首歌的播放次数与最后播放时间,驱动首页"最近播放"列表
  • 快捷搜索入口:一键跳转曲库搜索 Tab

NAS 音乐播放

  • 多后端支持:连接 Jellyfin / Navidrome / Subsonic / 道理鱼 / 飞牛 五种后端,播放 NAS 中的音乐
  • 道理鱼音乐:对接道理鱼音乐服务端,支持邮箱+密码登录,全量音乐管理
  • 飞牛音乐:对接飞牛私有云(fnOS)内置音乐服务,支持 CUE 整轨、HLS 流媒体
  • 后端信息:设置→关于页展示当前连接的后端类型、API 版本号、连接状态
  • API 版本号一览:关于页集中展示所有已接入后端/服务的 API 版本号
  • 连接页端口自动切换:选择不同后端类型时自动填充对应默认端口
  • 跨源搜索:搜索页支持来源点亮模式,NAS/网络/百度/Jamendo 四个源可独立开关,并行搜索合并去重

本地音乐

  • 自动扫描:自动扫描设备本地音频文件,支持 USB/SD 卡/内部存储多路径扫描
  • 毫秒级加载:Room 本地索引持久化,启动时毫秒级加载已扫描歌曲
  • NAS + 本地合并:同一视图无感浏览 NAS 与本地音乐,按来源优先级排序
  • 设备插拔监听:实时监听 USB/SD 卡设备插拔,自动更新存储列表并触发增量扫描
  • 本地歌词匹配:同目录同名 LRC 歌词文件自动匹配,支持 GBK/UTF-8 编码自适应
  • 本地封面提取:从音频文件内嵌元数据提取专辑封面
  • 跨源并行搜索:搜索页支持 NAS + 本地音乐并行搜索,合并去重

网络音乐

  • 在线搜索:支持中文关键词搜索,多端点自动切换
  • 搜索精确过滤:搜索结果精细过滤(标题/歌手/文件名包含关键词),不含搜索词的全部过滤
  • 多码率播放:5 档音质(自动 / 标准 128 / 高品 192 / 极高 320 / 无损 FLAC)。 播放器内可随时切换;档位不可用时静默降级到可获取的最高档并给出一次性提示,播放不中断
  • 单曲音质覆盖:全局默认之外,可为单首歌单独指定「仅本次播放」的档位,设置页可一键清除
  • 多码率下载:点击下载自动探测该曲可用音质——多档弹出选择面板、仅一档直接下载、零档提示错误。 非无损档文件名带档位后缀(03 - 南方姑娘 (320).mp3),同曲多档可共存
  • 下载降级可追溯:请求无损但该曲只有 320 时自动降级保存,文件名即记录实际码率,任务仍标记成功
  • 音质标识:播放页在「信息 / 歌曲来源」同一行显示音质 —— 网络歌曲显示当前档位(♪ 无损 / ♪ 320k,点击可切换); 本地 / NAS / 下载歌曲显示真实码率♪ 320 kbps / ♪ 无损 1.4M,只读不可点击)
  • 网络歌词:自动获取在线歌词,失败回退到酷狗/网易云
  • 网络封面:自动获取并显示歌曲封面
  • 歌曲收藏:收藏网络歌曲,下次可直接播放
  • 端点配置:设置页可选择预设端点或自定义 Meting-API 端点
  • MTV 视频端点配置:设置页可配置 B 站视频搜索端点
  • 电台:公共电台目录,标签/关键词筛选,直播流即点即播
  • 独立音乐(Jamendo):CC 授权音库,热门榜 + 风格筛选 + 搜索;设置页填 Client ID 即用

发现页(多源聚合浏览)

  • 多维度筛选:语种 / 纯音乐 / 年代 / 情怀 / 风格 / 主题(旅行/驾车/咖啡/运动/雨天/居家)六维度交叉浏览
  • 多源聚合:NAS + 网络 + 百度 + Jamendo 并行搜索,合并去重,按来源优先级排序
  • 网盘目录感知搜索:网盘源按目录名匹配,目录命中返回整目录歌曲
  • 跨页暂存:切页不重搜,幂等加载

天气电台

  • 按心情选歌:根据实时天气(晴/雨/雪/风/阴/夜晚)自动从 NAS 曲库和网络歌曲匹配心情电台
  • 双源天气:Open-Meteo + OpenWeatherMap 双源自动切换,支持未来 5 天天气预报
  • 无需 NAS:无后端连接时也能从网络端搜索匹配心情的歌曲

百度网盘音乐

  • 百度网盘音乐播放:设备码 OAuth 鉴权,连接百度网盘播放音乐(无需 NAS 后端)
  • 文件列表与搜索:目录浏览 + 关键词搜索,支持递归
  • 音乐串流:直链播放
  • 歌词与封面:侧车 LRC + 内嵌 ID3,网络匹配 fallback
  • MV 关联:同目录同名匹配 + 歌手歌名搜索,支持 MTV 全屏播放
  • 本地索引缓存:首次扫描后毫秒级搜索

歌词系统

  • 逐行滚动歌词:适配电视大屏
  • 逐字高亮:支持卡拉 OK 逐字变色效果,平滑过渡
  • 歌词匹配:自动从网络匹配歌词并本地缓存,同一首歌再次播放时零网络请求
  • 多来源获取:MP3 内嵌、本地缓存、本地文件、网络匹配、缓存,支持来源切换
  • 高亮模式记忆:逐字/逐行选择跨页面切换保留
  • 字体缩放:播放页 +/- 按钮调节歌词字号,设置持久化

播放控制

  • 播放模式:顺序播放、单曲循环、列表循环、随机播放
  • 播放队列管理:添加、移除、清空、移动排序
  • 播放队列持久化:重启应用自动恢复上次播放队列
  • 均衡器:预设方案 + 频段增益调节
  • 可视化舞台:全屏沉浸式音乐可视化,支持 30+ 套特效(含棱镜彩虹、极光·星空、歌词点阵等粒子/氛围类)
  • 人声消除(卡拉OK伴奏模式):实时分离人声与伴奏,K 歌时背景音乐完整不塌方
  • K 歌模式:播放页点"K歌"按钮进入全屏沉浸 K 歌页,双行歌词逐字变色推进,底部工具栏随时"原唱/伴奏"切换
  • 升降调:播放页可调节音调升高/降低,K 歌时配合伴奏
  • 播放速度:播放页可调节播放速度,K 歌时配合节奏
  • 歌曲详情面板:当前播放歌曲的码率、采样率、编码格式等参数悬浮展示
  • MTV 音乐视频:播放页点 MTV 按钮进入全屏视频页,切歌时后台自动搜索 B 站 MV
  • 最近播放:持久化播放记录,不依赖 NAS 连接;我的页进入时刷新

封面与显示

  • 专辑封面:支持内嵌元数据提取和在线获取
  • 艺术家封面:自动获取艺术家图片
  • 多封面轮播:歌曲/专辑/艺术家多张封面每 10 秒轮播,单张时静态显示
  • 歌词来源标签:显示当前歌词来源(内嵌/本地/网络/在线),点击切换
  • 封面滤镜:高斯模糊强度调节 + 暗色遮罩透明度,实时应用到播放页封面

曲库浏览

  • 搜索功能:拼音首字母匹配("zjl" 搜索 "周杰伦")+ 子串匹配 + 精确过滤
  • 发现页:多维度筛选(语种/纯音乐/年代/情怀/风格/主题),多源聚合浏览,网盘目录感知搜索
  • 艺术家 / 专辑 / 歌曲:网格卡片浏览,点击进入详情页
  • 流派 / 年代浏览:按流派和出版年份筛选
  • 收藏与最近播放:支持收藏、播放次数统计,最近播放含网络歌曲
  • 播放列表:创建、删除、播放、管理歌曲
  • 歌单导入:支持 M3u / 网易云 / JSON / TXT 四种格式;歌单内 HTTP URL 直链直接播放
  • 歌曲行操作:收藏 / 加入队列 / 加入歌单 / 删除(歌单内)四个按钮行内排列,触屏可点

TV 体验

  • 手机遥控(扫码控制):K歌/MTV 全屏页右上角显示二维码,手机扫码打开遥控页——查看/调整播放队列、搜索并添加歌曲
  • 遥控器优化:完整的 D-Pad 导航和焦点系统
  • HDMI-CEC:支持电视遥控器媒体键控制
  • 前台通知:媒体播放通知栏,支持 play/pause/next/previous
  • 多架构支持:ARM64 / ARMv7 / x86_64

手机适配

  • 同一 APK 双端支持:运行时检测设备类型,TV 走顶部导航 + 遥控器焦点体系,手机走触屏交互,互不影响
  • 底部导航栏:手机端底部导航(首页 / 曲库 / 搜索 / 播放队列),TV 保持顶部导航
  • MiniPlayer 迷你播放条:非播放页底部常驻,封面 / 歌名 / 播放暂停 / 下一首 / 细进度条,点击进入播放页
  • 触摸进度条:播放页进度条支持点击与拖拽 seek
  • 手机端默认横屏:手机端全界面横屏使用,布局贴近 TV
  • 曲库响应式网格:网格列数随屏幕宽度自适应(TV / 手机横屏 / 手机竖屏三档)
  • tab 栏横向滑动:曲库页的 tab 栏支持左右滑动浏览全部 tab
  • 完整导航覆盖:手机端底部导航 + "我的"页功能入口(队列 / 设置),与 TV 顶部导航功能对等
  • TV 功能按需隐藏:手机端自动隐藏"手机遥控"二维码等 TV 专属入口
  • 前台通知 MediaStyle:锁屏媒体控制(上一首/播放暂停/下一首),通知栏显示歌名 + 歌手名 + 封面
  • 锁屏媒体控制:锁屏界面可直接切换歌曲、暂停/播放,无需解锁
  • 电池优化白名单引导:首次启动引导用户加入电池优化白名单,确保手机后台播放稳定
  • Android Auto / Wear OS:媒体浏览树,支持 Android Auto 和 Wear OS 设备浏览播放队列

界面预览

  • 首页仪表盘:当前播放状态、最近播放记录、实时天气、均衡器频谱动态预览、快捷搜索入口
  • 播放页:左侧专辑封面 + 右侧歌词,封面滤镜(高斯模糊 + 暗色遮罩),进度条 + 控制按钮 + 可视化频谱 + 歌曲详情面板
  • 曲库页:搜索(含来源点亮)/ 发现(多维度+多源聚合)/ 电台 / 专辑 / 艺术家 / 歌曲 / 流派 / 年代
  • 发现页:语种/纯音乐/年代/情怀/风格/主题六维度筛选,NAS+网络+百度+Jamendo 并行搜索
  • 搜索页:来源点亮栏(NAS/网络/百度/Jamendo 开关)+ 精确过滤结果
  • 天气电台:按当前天气心情自动匹配歌曲,双列榜单卡片网格(封面轮播 + 换一批)
  • 详情页:专辑详情、艺术家详情(歌曲列表 + 播放全部)
  • 队列页:播放队列管理(删除、移动、清空)
  • 我的页:收藏(含网络歌曲)+ 最近播放(含网络歌曲)+ 本地歌单(行内操作按钮)
  • 设置页:主题、动画、播放模式、缓存管理、均衡器、歌词缩放、封面滤镜、天气 API Key、网络音乐端点配置、MTV 视频端点配置
  • 连接页:Jellyfin / Navidrome / Subsonic / 道理鱼 / 飞牛 五种后端,默认端口自动切换
  • 关于页:后端类型 + API 版本号 + 连接状态

构建与运行

# 设置 JAVA_HOME
export JAVA_HOME="C:\Program Files\Android\Android Studio\jbr"

# Debug APK
./gradlew assembleDebug

# Release APK
./gradlew assembleRelease

# 运行测试
./gradlew test

# 推送到电视(将 192.168.0.116 替换为你的电视 IP)
adb -s 192.168.0.116:5555 install -r app/build/outputs/apk/debug/app-debug.apk

Star History

Star History Chart

开源协议

GPL v3