00音理音理!· Android 音频播放器

多源在线, 本地优先, 原生 Android。

NeriPlayer(音理音理!)把网易云音乐、哔哩哔哩、YouTube Music 与本地音频装进同一个播放器,再配上逐字歌词、GLSL 流体背景、USB 独占与只属于你自己的同步。

基于 Jetpack Compose + Media3,支持 Android 9 及以上。免费开源,GPL-3.0。

Signals 多源播放 本地优先 自建同步

今晚也一起听歌吗?

Fig. 00 — 音理与黑猫诺瓦,crayon on paper
scroll

01正在播放 · Now Playing

每一首歌,都有自己的颜色。

下面这台手机按 App 源码重绘,并逐项对照真机截图:布局、尺寸、配色和按钮反馈都一致。示例曲《星轨》来自 NeriPlayer PV,按下播放键,它就真的会唱。

从封面里取出颜色,揉成会流动的背景
5种颜色
流体背景需要 Android 13 及以上,更低版本自动换成普通背景
Android13+

Media3 / RuntimeShader

01封面取色,生成流体背景

播放页背景由 BgEffectPainter 加载 GLSL / AGSL 着色器,经 RuntimeShader 逐帧渲染:先用 Palette 从封面提取 Base、Accent、Light、Dark、Bridge 五种色彩角色,再把它们揉成流动的色块与颗粒,并接入 uMusicLevel / uBeat 随节拍律动——不是把封面简单地高斯模糊。

Base Accent Light Dark Bridge

手机里的背景就是 App 那份着色器,移植到了 WebGL ↗

WaveformSlider

02进度条和主控,放在顺手的地方

播放时进度条变成一条缓缓流动的波形,暂停后回落成直线;等待缓冲时则换成跳动的脉冲。下方按设置显示音质、编码与规格,例如这首 FLAC 的 RAW · 48 kHz,拖动时还会按歌词时间轴给出触感反馈。

正在播放主控位置

单手握持时,把随机、上一首、播放、下一首和循环挪到拇指够得着的底部,进度条也可以一起下来。主控置底时 Dock 会暂时换成普通工具栏,避免两者重叠。

  1. 01波长约 30 dp、振幅约 2.3 dp,每两秒走完一个周期
  2. 02音质标签可点开切换,倍速不为 1.00× 时会单独标出
  3. 03播放页与歌词页的控件还能分别选小 / 中 / 大三档尺寸

SyncedLyricsView

03封面页也有逐字歌词

控制区下方嵌着一段同步歌词:当前行逐字点亮,翻译只跟在当前行下面,其余行安静地淡在一旁。点一行就跳到那里,长按可以分享;嫌挤的话,封面页歌词和底部工具栏都能单独关掉。

  1. 01封面页 18 sp、翻译 14 sp,可与歌词页分别调整字号
  2. 02向左一滑,就进入完整歌词页

PlaybackEffectsController

04音效与倍速

点右上角「更多」,再选「音效与倍速」:速度与音调分开调节,响度增强按 dB 步进,均衡器绑定当前播放会话,内置 23 种系统预设,也能逐个拖动 60 Hz 到 14 kHz 的手动频段。播放设置里还有按歌曲实时分析的响度均衡、声道平衡、32-bit 高解析输出、淡入淡出与交叉淡入淡出。

先按播放,再点手机里的预设或倍速,声音会真的跟着变 ↗

编号NP-01版本—平台Android页码01 / 12
状态Android 9+ · 流体背景与高级模糊需 Android 13+
来源cwuom/NeriPlayer · 3.7k · 131日期—
示例曲《星轨》· Neri Line · NeriPlayer PVNP
《星轨》封面 本地文件
星轨 Neri Line
00:08 01:12

RAW·48 kHz

音效与倍速

速度与音调可分开调节,均衡器会绑定当前播放会话

播放速度1.00x
音调1.00x
响度增强当前设备可能不支持响度增强+0.0 dB
均衡器预设

速度、音调和均衡器预设


手动频段

Fig. 01 — 播放页 · 每个按钮都能点

02歌词 · Lyrics

原文与译文,一同亮起。

完整歌词页把歌词交给整块屏幕:当前行加粗点亮,译文贴在原文正下方,远处的行被景深慢慢模糊。左下角的「译」可以把译文收起或放出。

星轨Neri Line
00:13 01:12
Fig. 02 — 歌词页,《星轨》的逐字时间轴

LRC / YRC / TTML

02仿 Apple Music 的深度歌词

支持逐行与逐字 LRC(含行尾时间与方括号逐字时间戳)、YRC 与 TTML。歌词页只显示当前歌曲真正可用的选项,切歌后等歌词判定完成再渐入,不会先闪一下空白。

  1. 01点击某一行直接跳转;长按选择歌词,复制文本、分享歌曲或生成 1080px 歌词卡片
  2. 02歌词偏移可按来源分别设置默认值;字号在封面页与歌词页分开调
  3. 03来源偏好:自动 / 网易云 / 酷狗 / QQ 音乐 / LRCLIB / AMLL TTML,手动匹配时优先逐字
  4. 04悬浮歌词、状态栏歌词、SuperLyric、词幕 Lyricon 与蓝牙歌词,复用同一条播放数据

Fig. 02b — 有音译时(示意)

星の線路を そっと辿って

hoshi no senro wo sotto tadotte

遇到带音译数据的日语歌,次级行可以切换成音译:它同样贴在原文正下方,取代译文的位置,而不是悬在原文上面。歌曲没有音译时,这个选项不会出现——就像上面的《星轨》,只有「译」。

Fig.模拟器截图 · Android 16 · 1080 × 2400

不放效果图,直接从模拟器里截的 ↓

播放页截图
播放页
歌词页截图
歌词页
音效与倍速截图
音效与倍速
均衡器截图
均衡器
更多选项截图
更多选项
媒体库截图
媒体库

03多源 · Sources

一个播放器,四条线路。

按平台独立搜索、互不混排;播放、下载、歌单、历史与统计,却共用同一套本地数据与播放核心。音源解析、失败恢复与自动兜底,都交给 PlayerManager 统一调度。

网易云音乐 · 哔哩哔哩 · YouTube Music
3个在线平台
手机里的歌,连同歌词和封面一起导入
+本地音频
网易云 · 酷狗 · QQ 音乐 · LRCLIB · AMLL TTML
5个歌词来源

登录 · 搜索 · 播放 · 下载 · 评论

01

网易云音乐

从日推、私人 FM 到艺术家详情,网易云是功能最完整的一条线。

  1. 01二维码 / 网页登录;首页同时展示榜单、新歌、日推、私人 FM、雷达与精品歌单
  2. 02歌曲 · 歌单 · 歌手分类搜索,触底自动加载下一页
  3. 03歌单与专辑详情缓存,网络失败时回退到最近一次成功加载的数据
  4. 04艺术家页:热门歌曲与专辑分页,关注后出现在收藏分类里
  5. 05评论:热门 / 最新 / 推荐、楼中楼、点赞、发评与回复,发送失败保留草稿
  6. 06本地「我喜欢的音乐」可同步回网易云
登录✓下载✓
搜索✓歌词✓
歌单✓评论✓

收藏夹 · 合集 · 分 P

02

哔哩哔哩

把视频收藏夹当歌单听:分 P 转音频播放、下载,合集上下文一路保留。

  1. 01Web 登录与二维码登录,视频搜索,创建 / 订阅的收藏夹与合集
  2. 02DASH 音频重试,必要时回退 html5 / mp4 渐进流
  3. 03可选 BilibiliSponsorBlock:只发送 BV 号的 SHA-256 前缀,片段在本地跳过
  4. 04按 BVID + CID 保存自定义跳过区间,可通过 GitHub / WebDAV 同步
  5. 05评论支持热门 / 最新、楼中楼分页、点赞与回复

账号会话 · 播放兼容

03

YouTube Music

国际化模式下首页优先展示 YouTube Music 的歌单与歌曲货架。

  1. 01登录,首页 / 媒体库歌单、歌单详情与搜索
  2. 02登录态 Cookie 与匿名 visitor 会话分别维护,Cookie 轮换受保护
  3. 03PoToken / JS Challenge,bootstrap 与 player.js 缓存优先复用
  4. 04候选被拒时回退 EJS / HLS,不在同一个候选上反复重试
  5. 05可在「设置 > 通用」完全禁用,关闭后不显示入口、不做后台预热

这里的能力只指账号会话、播放兼容和错误恢复,不代表绕过平台限制或重新分发媒体。

导入 · 扫描 · 归类

04

本地音频

文件夹里的歌,连同旁边的歌词与封面,一起搬进曲库。

  1. 01系统分享 / 打开导入,扫描媒体库或按授权文件夹定向扫描
  2. 02识别 lrc / txt 歌词与 cover / folder / front 封面
  3. 03大批量扫描先快速预览,再在后台补全歌名、歌手、专辑与封面
  4. 04按艺术家自动聚合,拆分 feat. / with / 和 / 与 / 斜杠等合作写法

自动兜底

05

播放兜底

一首歌放不出来时,NeriPlayer 会先想办法,而不是直接报错。

  1. 网易云不可播无权限、无可用结果或只给试听片段
  2. 先降音质依次尝试更低的音质
  3. 改用 Bilibili按歌名、歌手与时长评分匹配
  4. 改用本地音频按稳定元数据匹配可读的本地音频
  5. 仍然异常先刷新播放链接,连续失败再跳过或停止

Bilibili 与本地兜底默认关闭,要自己打开哦

Fig. 03e — 兜底流程

04音质 · Hi-Fi

每一个采样,原样抵达。

USB 独占由 native 驱动接管兼容的 USB 音频设备,系统音与其他应用不再共用通道;开启比特完美音量后,软件增益固定为 0 dB,把音量交还给 DAC。

  1. 音源FLAC · 24bit / 48kHz
  2. Media3ExoPlayer 解码
  3. 音效链均衡 · 响度 · 倍速
  4. AudioSink32-bit PCM / float
  5. lib_neri.soUSB 独占传输
  6. USB DACUAC1.0 · UAC2.0

比特完美时,绕开音效链 ↷

软件增益 −3.2 dB · 经过音效链
Fig. 04 — 从解码到 DAC 的信号链
  1. 01UAC1.0 · UAC2.0 Type I PCM设备选择、采样率 / 位深 / 缓冲策略与兼容性开关
  2. 02跟随源采样率先按 USB 描述符尝试源采样率,不可用时回退设备兼容采样率
  3. 0332-bit PCMPCM float 软件转换为设备格式
  4. 04显式反馈时钟解析 UAC2 时钟拓扑与反馈端点,长调度间隙后重新捕获
  5. 05卡死自动恢复启动看门狗、健康审计、原地重配置、动态传输扩缩容,必要时回退系统播放
  6. 06前后台无缝按网络或本地来源选择唤醒策略,回到前台后恢复 USB 独占
  7. 07普通输出也讲究32-bit 高解析输出、实时响度均衡、声道平衡、蓝牙断连暂停
  8. 08边界写清楚隐式反馈或无法验证的拓扑会拒绝 Native 候选,走兼容回退

05一起听 · Listen Together

隔着很远,听同一首歌。

创建房间、分享邀请,所有人的播放进度通过 WebSocket 实时对齐。服务端基于 Cloudflare Workers 与 Durable Objects,你可以一键部署属于自己的那一台。

  1. 01房主 · 听众成员控制开关与控制请求,房主离线检测与恢复
  2. 02同一句歌词,同一秒估算服务端时钟偏移、按漂移阈值校正;单曲循环按时长回绕
  3. 03队列协作拖动、添加与删除按房间版本合并,随机模式复用发起端的真实乱序
  4. 04安全邀请首次加入需要邀请密钥,成员密钥不出现在公开房间状态中
  5. 05候选共享可选共享房主解析的播放候选,每首最多 3 条,不写入离线缓存
LTWWorkers · DO
音理房主
诺瓦听众
狩叶听众

房间 NR7K2Q · 实时同步

Fig. 05 — 三个人,一个房间

06本地与离线 · Local

连接断开,歌还在继续。

播放缓存、下载、歌单、历史和设置默认都留在设备上。网络断开时,首页、探索、播放页、歌词、歌单与下载列表都会切进脱机模式,围绕本地文件与缓存继续运行。

06.1

脱机模式

NetworkStatusMonitor 按系统默认网络承载识别脱机;断网时远程图片请求被阻断,优先用缓存封面。

  • 在线探索与首页刷新
  • 本地文件与已下载歌曲
  • 播放缓存与缓存封面
  • 本地歌单、最近播放与统计
06.2

下载与断点续传

并发 6 · 最高 8
  • 星轨.flac下载中
  • 晚安,列车.mp3下载中
  • Polaris · HLS下载中

不走系统 DownloadManager:直接 HTTP 用 Range 追加,分块传输按偏移续传,HLS 以检查点恢复;队列持久化,重启后自动恢复,手动取消会清理半成品。

06.3

存储占用,一眼看清

  • 音频缓存1.0 GB
  • 图片缓存236 MB
  • 平台歌单缓存142 MB
  • 下载内容896 MB
  • 日志与崩溃报告9 MB
  • 核心应用数据230 MB

清理只覆盖可再生成的缓存,不会把你主动下载的歌当成缓存删掉;音频缓存默认上限 1 GB。

06.4

本地歌手,自动归类

音理 feat. 诺瓦 / 狩叶、花江

音理诺瓦狩叶花江

识别 feat.、with、和 / 与、顿号、分号与斜杠;歌手页可播放全部、多选导出歌单,或批量下载在线歌曲。

06.5

歌单,改错了也不怕

  1. 01删除歌单或歌曲后可以撤销,批量导出也能撤回新增内容
  2. 02选中的歌曲可以整体插到指定序号,先预览前后各 5 首上下文
  3. 03「本地文件」按「手动添加」与「已下载」分类,详情显示累计播放次数
06.6

流量也算得清

区分播放 / 下载流量、Wi‑Fi / 移动 / 漫游与缓存命中;在高风险网络下下载会主动提示。

07同步与隐私 · Sync & Privacy

你的数据,只交给你自己。

NeriPlayer 没有中心化服务器。歌单、收藏、最近播放与播放统计这些元数据,只会同步到你自己的 GitHub 仓库(应用内新建时默认私有)或 WebDAV。

  1. 01延迟 5 秒 · 每小时一次本地变更后延迟同步,另有周期同步;由 WorkManager 调度,只在已验证的网络下执行
  2. 02三路合并歌单、收藏、历史、删除记录与播放统计参与合并,撤销后的歌曲不会被旧删除记录再次移除
  3. 03V4 增量格式Protobuf 记录流 + ZSTD 分块,单个对象不超过 2 MiB,没变的块不再上传
  4. 04原子发布GitHub 以 GraphQL beforeOid 条件更新;WebDAV 先传不可变对象,再以强 ETag 写清单
  5. 05本地加密Cookie、YouTube 授权、GitHub Token 与 WebDAV 密码存在 Android Keystore + EncryptedSharedPreferences

四条承诺

  1. 01
    不接广告,也不追踪。

    不接入广告 SDK、第三方统计或崩溃分析 SDK。

  2. 02
    不做公共曲库。

    不提供云端媒体分发,也不把个人数据汇聚到维护者手里。

  3. 03
    凭据不出设备。

    不会上传音频缓存、下载文件、Cookie 或播放 Token。

  4. 04
    保护你的账号。

    不把本地播放历史回写第三方平台,避免触发风控与异常登录。

07b播放统计

按歌曲稳定身份记录播放次数、收听时长与每日统计桶,也参与同步合并。

次播放
186
小时收听
11.2
首歌曲
74

收听时长

周 / 月 / 年分别采用近 7 / 30 / 365 天窗口;热点周榜只收录累计收听不少于 10 分钟的歌曲,月榜门槛为 30 分钟。GitHub 仓库与 WebDAV 远端文件都不是端到端加密,请自行妥善保管。

08个性 · Personalize

不只是换个主题色。

设置项由 AutoSettingsSchema 统一生成:动态取色、种子色、主题风格、明暗模式、UI 缩放与自定义背景……右边的首页按真机布局重绘,拿蜡笔点点看。

种子色
深色模式
  1. 01动态取色、种子色与主题风格,自动 / 浅色 / 深色
  2. 02OnePlus 高密度屏会自动叠加 0.95× 修正,用户设置作为额外乘数
  3. 03Android 13+ 可开启进阶高级模糊,12–64 dp 可调,质量分超低 / 低 / 默认 / 高
  4. 04「连贯反馈」让背景与详情页同步接力;关闭时使用抽屉式展开
  5. 05歌词字号与模糊、首页卡片、默认启动页、触感反馈,乃至单曲的名称、歌手与封面

NeriPlayer

继续播放

本地文件10首
Neri Line2首
NeriPlayer PV10首

私人雷达

  1. 1
    PolarisNeri Line / NeriPlayer PV
  2. 2
    Paper PlanetsNeri Line / NeriPlayer PV
  3. 3
    Low OrbitNeri Line / NeriPlayer PV

雷达歌单

雷达时光
雷达
时光雷达15.6亿 · 30首
雷达宝藏
雷达
宝藏雷达8.7亿 · 30首
雷达新歌
雷达
新歌雷达3.6亿 · 30首
雷达乐迷
雷达
乐迷雷达2.8亿 · 30首
雷达神秘
雷达
神秘雷达3791.7万 · 30首

热力飙升

  1. 1
    海边的信号Glass Harbor / NeriPlayer PV
  2. 2
    猫与汽水Soda Cat / NeriPlayer PV
  3. 3
    雨后电台Paper Satellite / NeriPlayer PV

推荐新歌

星轨Neri Line
Fig. 08 — 首页,按真机布局重绘

09平板 · Tablet

屏幕大了,就换一种摆法。

平板与折叠屏横过来,底栏换成左侧导航栏,播放页拆成封面与歌词两栏,设置变成列表与详情并排,迷你播放器也拉成一整条控制栏。下面四张都是 Pixel Tablet 模拟器里的真机截图。

最短边达到 600 dp 就按平板处理,横竖屏随意转
600dp
横屏宽度够 840 dp,换成侧边导航栏与双栏设置
840dp
播放页、媒体库、设置……主要页面都有平板布局
4类页面
平板横屏首页:左侧导航栏、雷达歌单卡片与分三栏排列的「热力飙升」 1 2 3 4
平板横屏播放页:左栏封面、进度与控制,右栏整页双语歌词 1 2 3 4
平板横屏歌单详情:歌单头部、手动添加与已下载分栏、整宽曲目列表 1 2 3 4
平板横屏设置:左栏分组列表与搜索,右栏直接显示「通用」详情 1 2 3 4
Fig. 09 — Pixel Tablet 模拟器 · Android 16 · 2560 × 1600 横屏
  1. 01底栏换成左侧导航栏,当前页带文字标签
  2. 02首页卡片按宽度排开,一行放下五张雷达歌单
  3. 03榜单拆成三栏,一屏看完九首
  4. 04迷你播放器拉成整条:切歌、随机、循环、音量、一起听与队列都在手边
  1. 01封面、进度与控制收在左栏,宽度固定不乱跳
  2. 02歌词直接排在右栏,原文与翻译同屏,不用另开一页
  3. 03波浪进度条、音质标签与五个功能按钮一个不少
  4. 04背景照样从封面取色,铺满整块大屏
  1. 01歌单头部与曲目列表在同一页里滚动
  2. 02「手动添加 / 已下载」分栏切换
  3. 03列表铺满宽度,时长与更多操作靠右对齐
  4. 04悬浮的队列按钮,随时定位正在播放
  1. 01左栏是分组与搜索,结构和手机一致
  2. 02右栏直接显示详情,不用跳页再返回
  3. 03当前分组高亮,左右两栏联动
  4. 04侧边导航栏与迷你播放栏常驻

手机仍锁定竖屏,只有播放页可以横过来;平板竖屏的播放页另有一套布局。

10细节 · Details

每天都会用到的小细节。

不起眼,却天天都会碰到。这些地方也一样认真打磨过。

10.1

桌面小组件

4×2 · 2×2 · 4×1
4×2 播放卡片小组件预览
4 × 2
2×2 迷你播放器小组件预览
2 × 2
4×1 横条小组件预览
4 × 1

封面取色的 Material You 圆角卡片,适配明暗主题、大字体与横竖屏。宽卡片显示收藏与桌面歌词入口,窄尺寸也保留上一首、播放与下一首;播放时按秒更新已播放时间。

图为 App 自带的小组件预览图。

10.2

启动器快捷方式

长按桌面图标直达;没有可恢复的队列时会给出反馈,而不是静默失败。

10.3

迷你播放器,一滑切歌

底部迷你播放器左右一滑切到上一首 / 下一首,点击展开与播放暂停照旧。

10.4

悬浮与状态栏歌词

悬浮歌词的颜色、描边、字号、位置与对齐都可自定义;支持魅族状态栏歌词、SuperLyric、词幕 Lyricon 与蓝牙歌词。

10.5

车载播放

Android Auto 与支持 AVRCP 浏览的设备可浏览队列与歌单、搜索曲库;连接曲库不会自动播放。

10.6

安全模式

JVM、Native 崩溃与系统 ANR 都会记录现场;上次异常时跳过完整初始化,直接进入安全模式。

10.7

长音频进度记忆

长播客、长视频分 P 自动续上;显式指定的播放位置优先于记忆位置。

10.8

开发者模式

真机上同样是在设置页连点版本号 7 次:底栏会出现 Debug 页,内含各平台探针与日志查看器。

11构造 · Inside

十四个模块,各管一段路。

自有 Android 库按业务域拆分,依赖方向写在门禁里::model 不依赖实现,:common 不依赖业务,所有库禁止依赖 app 或形成循环。彩色圆点对应它们服务的功能章节。

Cross-reference 01 播放 02 歌词 03 多源 04 音质 05 一起听 06 本地 07 同步

模块

  • :playback:runtimeMedia3 引擎、音源解析、USB 输出、系统音效
  • :playback:logic播放策略、状态协调、PCM 与队列规则
  • :lyricsLRC / YRC / TTML 解析、翻译对齐、词幕接入
  • :platform网易云、Bilibili、YouTube 协议与账号、评论
  • :nativeUSB 协议、PCM 计算、独占传输,打包 lib_neri.so
  • :listentogether一起听协议、WebSocket、会话与播放同步
  • :download:runtime下载执行、Room 队列、受管文件与恢复
  • :download:logic准入、状态迁移、重试、调度与提交规则
  • :local设置、媒体、歌单、统计、备份与缓存清理
  • :syncGitHub / WebDAV 传输、编解码、合并与调度
  • :databaseRoom 实体、DAO、历史 schema 与升级
  • :network通用 HTTP、Range、网页登录基础能力
  • :model跨模块数据模型与状态契约
  • :common共享工具、日志、文案、图标与语言能力

工具

  • KotlinJava 17 / JVM 17
  • Jetpack Compose单 Activity · NavHost
  • Media3 ExoPlayer播放核心
  • AGSL / GLSLRuntimeShader 流体背景
  • Room · DataStore本地持久化
  • WorkManager同步与下载调度
  • OkHttp · Coil网络与图片
  • KSP设置 schema 生成
  • NDK · C++ · CMakelibusb、独占传输
  • Protobuf · ZSTDV4 同步格式
  • Cloudflare WorkersDurable Objects · WebSocket
  • GitHub ActionsCI、多 ABI 发布、sanitizer 门禁

12下载 · Download

装上它,马上就能听。

选一个和设备匹配的架构(ABI),点一下就能下载。版本号、文件大小和 SHA-256 校验值都实时读取自 GitHub Releases,免费,也没有任何广告。

沿虚线剪下
NeriPlayer · Android 安装包 免费下载 APK
来自GitHubRELEASES
装到你的手机YOUR PHONE
版本
最新版本
发布于
—
系统要求
Android 9+ · API 28
价格
免费 · GPL-3.0
选择架构 · ABI
第 — 版 累计下载—
12.1

Release 版本推荐

完成一批功能后手动发布,构建 arm64-v8a、armeabi-v7a、x86、x86_64 四个 ABI。它并不是严格意义上的稳定通道,仍可能有尚未暴露的问题。

GitHub Releases ↗
12.3

从源码构建

JDK 17
# 克隆仓库并初始化子模块
git clone --recursive https://github.com/cwuom/NeriPlayer.git
cd NeriPlayer
# 构建调试版并安装
./gradlew :app:assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk

DEBUG 包名 moe.ouom.neriplayer.debug,橙色图标,可与正式版共存。

怎么选 ABI?

arm64-v8a近几年的绝大多数手机与平板
armeabi-v7a老旧的 32 位 ARM 设备
x86_64 / x86模拟器、英特尔设备或 Chromebook

第一次启动

先阅读免责声明并完成启动引导。引导页会说明通知与本地音乐权限,仅在你主动点按后申请,跳过也不影响继续使用。

最近一班列车

  • 正在向 GitHub 查询最新版本……

i常见问题 · FAQ

有什么想问的?

Q.NeriPlayer 收费吗?可以捐赠支持吗?

完全免费,以 GPL-3.0 协议开源。由于项目的特殊性,维护者不接受任何形式的赞助、捐赠或商业资助。如果想支持它,欢迎提交 Issue、PR,或者把它分享给需要的人。

Q.它自带音乐资源吗?

不提供。NeriPlayer 不构建公共云端曲库或媒体分发服务,在线能力依赖你在第三方平台上的账号授权,会员或受限内容仍需遵循原平台规则。请只在你拥有权利、授权或平台规则允许的范围内访问、播放或保存内容。

Q.我的数据会被上传到哪里?

默认哪里都不去:播放缓存、下载、歌单、历史、统计、设置与授权信息都保存在本机。只有你主动开启 GitHub 或 WebDAV 同步时,歌单、收藏、最近播放和播放统计等元数据才会写入你自己控制的远端;音频缓存、下载文件、Cookie 与播放 Token 不会上传给任何人。

Q.为什么不把播放记录同步回网易云等平台?

应用并非没有这个能力。但中心化音乐平台的客户端通常有风控与行为采样,直接上报本地播放历史可能触发异常登录、异常播放甚至账号冻结。出于保护账号安全的考虑,NeriPlayer 暂不向这些平台上传本地播放历史与统计。

Q.支持哪些 Android 版本?

支持 Android 9(API 28)及以上。播放页的 RuntimeShader 流体背景与高级模糊需要 Android 13+,封面模糊需要 Android 12+,低版本会自动降级,不影响播放本身。

Q.歌词的「音译」在哪里?

只有当前歌曲带有音译数据时才会出现。开启后,音译显示在原文正下方、取代译文的位置;没有音译的歌曲(比如中文歌)只会看到「译」。

Q.“一起听”必须自己搭服务器吗?

不一定。你可以使用他人部署的服务,也可以用 Cloudflare Workers 一键部署自己的 NeriPlayer-LTW,然后在设置页填入地址并测试可用性。房间号是 6 位可读字符;本地歌曲不能创建一起听房间。

Q.GitHub / WebDAV 同步是端到端加密的吗?

不是。凭据在本机以 Android Keystore 加密保存,但同步到远端的文件并不做端到端加密,请自行妥善保管仓库与 WebDAV 账户。完整配置导出文件会包含授权信息,只适合自用迁移,不要公开分享。

Q.USB 独占支持我的 DAC 吗?

当前面向 UAC1.0 与兼容 UAC2.0 Type I PCM 的设备。UAC2 异步链路只接受能解析出唯一显式反馈端点与受支持时钟拓扑的设备,其他情况会走兼容回退。如果息屏后播放被系统限制,请按设置页提示放开电池与后台限制。

Q.遇到问题,怎么反馈最有效?

先在设置页连续点击版本号 7 次开启开发者模式,应用会启用文件日志,崩溃日志会单独落盘。然后到 GitHub Issues 附上系统版本、机型、应用版本、复现步骤与关键日志。也可以用 adb 过滤日志:

adb logcat | findstr NeriPlayer   # Windows
adb logcat | grep NeriPlayer      # Linux / macOS

另外,全局代理可能导致部分第三方接口返回异常数据,请合理配置代理规则。