需先安装 Node.js 和 pnpm 才能构建;完整渲染特效依赖较新浏览器,Chromium 需 120+、Safari 需 15.4+;项目目前仅一名活跃维护者并在招募共同维护者。
applemusic-like-lyrics
amll-devAGPL-3.0活跃维护提供类 Apple Music 风格的歌词滚动显示组件,同时支持 React 和 Vue,方便在网页音乐播放器中快速接入逐行高亮歌词效果。
An Apple Music style lyric player component, with React & Vue support. 一个类 Apple Music 歌词显示组件,同时提供 React 和 Vue 绑定。
pnpm install
pnpm run build:libsREADME 未给出显存要求;性能参考为近五年主流 CPU 可跑 30FPS,60FPS 需 CPU 频率 3.0GHz 以上,144FPS 建议 4.2GHz 以上;1080p 满 60fps 需 NVIDIA GTX 10 系及以上,2160p 需 RTX 2070 及以上。
类 iPad Apple Music 的歌词播放组件库,提供 DOM、React、Vue 三种绑定
提供类 Apple Music 风格的歌词滚动显示组件,同时支持 React 和 Vue,方便在网页音乐播放器中快速接入逐行高亮歌词效果。
核心能力
- 提供原生 DOM、React、Vue 三种组件绑定
- 内置歌词显示与动态流体背景组件
- lyric 模块解析 LyRiC、YRC、QRC、Lyricify Syllable 格式
- 支持歌词解析与序列化双向转换
- 按浏览器版本分级,完整特效需 Chromium 120+ 等
容易踩的坑
- full-refractor-player-devAMLL Player Update Placeholder (full-refractor)pre-release2026-04-03 · 2026-04-03 16:36 UTC
查看更新说明
AMLL Player 现已迁移到 https://github.com/amll-dev/amll-player。此 release 为占位用,提供
latest.json以供历史版本更新。 - main-player-devAMLL Player Update Placeholder (main)最新正式版2026-03-27 · 2026-03-27 17:46 UTC
AMLL Player 现已迁移到 https://github.com/amll-dev/amll-player。此 release 为占位用,提供
latest.json以供历史版本更新。 - main-nightly最新 main 分支开发调试构建pre-release2024-05-31 · 2024-05-31 03:28 UTC
查看更新说明
Documentation
- 修正工作流 (Steve-xmh)
- 修正工作流 (Steve-xmh)
- 修正工作流 (Steve-xmh)
- 修正顶栏 (Steve-xmh)
- 增加文档页面列表 (Steve-xmh)
- 增加代码高亮,修改排版和样式 (Steve-xmh)
- 增加表格和其他样式支持 (SteveXMH)
- 优化样式 (SteveXMH)
- 增加歌词编辑器文档(感谢 @Xionghaizi001 ) (Steve-xmh)
Commits
- 解耦部分模块 (SteveXMH)
- 支持调节背景帧数和渲染精度 (SteveXMH)
- 更新构建工作流 NodeJS 版本 (Steve-xmh)
- 增加 ESLyric 歌词格式支持 (SteveXMH)
- 补充说明 (SteveXMH)
- 让歌词行保持在 GPU 层以缓解 CPU 压力 (SteveXMH)
- a41d7f8: 更改辉光判定和渲染 (Eplor)
- 将是否应用强调效果的条件还原回去 (SteveXMH)
- 重新调节了辉光效果和相关样式的匹配 (SteveXMH)
- 57b243b: 优化请求接口 (SteveXMH)
- 增加镜像源以加速 AMLL TTML DB 歌词获取 (SteveXMH)
- 完成对接低频数据到背景渲染器实现特殊效果 (SteveXMH)
- 5e45dbd: Merge branch 'dev' of github.com:Steve-xmh/applemusic-like-lyrics into dev (SteveXMH)
- 更新构建 (Steve-xmh)
- 统一了音频可视化数据源 (SteveXMH)
- 可以让背景接收音频可视化数据了 (SteveXMH)
- 传入fttLowCut Shader实现 (Eplor)
- 90ab6b5: Merge branch 'dev' of github.com:Steve-xmh/applemusic-like-lyrics into dev (SteveXMH)
- 支持传参FFT到背景 (SteveXMH)
- 微调了音频可视化效果 (SteveXMH)
- 增加作为组件嵌入其他项目的环境类别 (Steve-xmh)
- 调优了窗口较小时的布局 (Steve-xmh)
- 优化竖向布局 (Steve-xmh)
- 流体FFT动画算法超级更新 ([Eplor](https://github.com/Steve-xmh/applemusic-like-lyrics/commit/18
- v3.1.0-nightly最新 v3.1.0 分支开发调试构建pre-release2024-02-21 · 2024-02-21 13:02 UTC
这个版本没有写更新说明。
- v3.1.0v3.1.0 - 插件端最终版发布2024-02-21 · 2024-02-21 13:00 UTC
查看更新说明
历经 140+ 个提交后,我们终于推出了插件端的最终版本!
主要更新摘要
完全重构的流体背景!
在和 Apple Music 几乎别无二致的情况下大幅度降低了性能开销! 在 BNCM 3.0.0+ 环境中,还能根据音频的鼓点动态变化哦! 在此非常感谢 @Eplorr 在背景着色器方面的贡献!
新的渐变过渡算法!
使用 Web Animation API 重构了渐变过渡算法,现在单词的渐变过渡更加平滑且流畅了!
新的辉光强调效果!
在效果和性能上更优于之前的版本了!
新的可调节选项!
现在你可以设置更多的选项了:
- 单独隐藏音量控制条
- 悬浮到专辑图隐藏光标
- 禁用混色效果
- 加载音乐后自动暂停播放(便于录制视频)
- ...还有更多!
今后的计划
出于各方考虑,我们将终止 BNCM 插件版本的开发,故将这个版本定义为最终版本。 也因此,今后不再接受任何有关 BNCM 插件版本的反馈。
今后原 BNCM 插件中的代码将会被拆解并重新组合成一个便于二次开发的 React 组件库包,方便更多前端开发者使用,尽请期待!
同时,我们也将会完善外置播放器的功能,有望将其转型为本地播放器并继续提供协议连接播放功能,尽请期待!
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
English / 简体中文
A lyric player component library that aims to look similar to iPad version of Apple Music. With DOM, React and Vue bindings.
This is perhaps the most iPad Apple Music-like lyric page you've seen in frontend.
Although the goal of this project is not to imitate it completely, it will polish some details to be better than the current best lyric players.
—— AMLL Series Projects ——
AMLL TTML DB - TTML Syllable Lyric Database
AMLL TTML Tool - TTML Syllable Lyric Editor / AMLL Editor - Next-Gen TTML Syllable Lyric Editor
AMLL Player - Local Music Player / AMLL Page - Web Music Player
[!IMPORTANT] 📢 We are looking for co-maintainers!
Currently, the project has only one active maintainer with limited bandwidth. If you're interested in helping maintain AMLL, please check our 招募维护者 / Looking for Maintainers and Contribution Guide. You can also reach us via QQ Group (678038548) or Discord Server.
AMLL Ecology and source code structure
Main modules
: AMLL Core Component Library, written natively with DOM, provides lyric display component and dynamic fluid background component
: AMLL React binding, provides React component forms of lyric display and dynamic fluid background components
: AMLL Vue binding, provides Vue component forms of lyric display and dynamic fluid background components
: AMLL lyric parsing module, provides parsing and serialization support for various lyric formats including LyRiC, YRC, QRC, and Lyricify Syllable
Browser compatibility alerts
This component framework requires the following browsers or newer versions at a minimum:
- Chromium/Edge 91+
- Firefox 100+
- Safari 9.1+
To fully render all component effects, the following browser versions or newer are required:
- Chromium 120+
- Firefox 100+
- Safari 15.4+
Reference Links:
- https://caniuse.com/mdn-css_properties_mask-image
- https://caniuse.com/mdn-css_properties_mix-blend-mode_plus-lighter
Performance configuration reference
Performance benchmarks have shown that mainstream CPU processors from the last five years can run the lyric component at 30FPS. However, if you need smooth 60FPS operation, ensure your CPU frequency is at least 3.0GHz or higher. For 144FPS or above, a CPU frequency of at least 4.2GHz is recommended.
GPU performance capable of running at full 60 fps at the expected sizes under the following conditions:
1080p (1920x1080): NVIDIA GTX 10 series and above2160p (3840x2160): NVIDIA RTX 2070 and above
Development/build/packaging process
Prerequisites
Building the component libraries
Clone this repository, then run the following commands in the project root:
# Install dependencies
pnpm install
# Production build (all library packages)
pnpm run build:libs
Building a single package
# Example: build only @applemusic-like-lyrics/core
pnpm nx run @applemusic-like-lyrics/core:build
# Example: development build of @applemusic-like-lyrics/lyric
pnpm nx run @applemusic-like-lyrics/lyric:build:dev
Acknowledgements
- woshizja/sound-processor
- FFmpeg
- And many other frameworks and libraries used by AMLL, thank you very much!