Mrachritmo1
——一个孤独的音乐播放库
一个支持卡拉ok和逐字(或词)淡入淡出效果的Web字幕音乐播放器音乐库
可通过网易云歌单自动部署
可按T键切换歌词显示模式
默认包含了一些歌曲和歌词
NodeJS>=20(完整的ES6模块支持,File API及现代JavaScript语法等)
目前共有三种效果,默认随机
万能模式,可读性最好
适合逐个字的意音/音节文字(如中文,日语,韩语),以及逐个词的音位文字(如英语,俄语),不适合逐个字的音位文字(如英语,俄语),以及快节奏歌词
接近万能。
两个歌曲分别是祖海的《为了谁》,Joy Division的《Love Will Tear Us Apart》和Дела Поважнее的《Лекарство от боли》
在neteaseplaylist.txt中添加你的网易云音乐歌单链接或id(一行一个)
然后输入
npm install
安装依赖,再输入
npm run 163musicbuild
即可
两种构建模式都会输出静态 SPA:index.html 为歌单索引,所有单曲共用
player.html,路由参数及歌曲资源由 songs.json 提供。全部链接均为相对路径,
因此可部署在域名根目录或任意子目录,无需配置服务端路由回退。
会优先通过网易云音乐获取歌词,如果没有逐词会尝试使用QQ音乐歌词
如果只需要在部署后检查歌单变化,可使用增量更新命令:
npm run 163musicupdate
该命令使用 dist/.playlist-state.json 保存歌单快照,只处理新增或发生变化的歌曲;
歌单请求全部失败时不会覆盖现有资源。
你须在本地部署另一个项目https://github.com/Suxiaoqinx/Netease_url
并在playlistbuild.js中在顶部配置部分将jymaster常量设置为true
默认下载最高网易云音乐的最高品质,即24bit192kHz
不推荐在公开网站使用此方法,大部分的服务商带宽无法支撑音频流畅播放
在网站内引用JS(在html audio和文本以及频谱条canvas元素之后)
<script src="player.js"></script>你需要确保你的网站包含以下css
.lyric span {
display: inline-block;
background: linear-gradient(to right, #000000 var(--progress, 0%), #818282 var(--progress, 0%));
-webkit-background-clip: text;
background-clip: text;
color: transparent;
transition: --progress 0.1s ease;
white-space: normal;
}
/*#000000与#818282分别是播放完与未播放的文字颜色*/html
audio标签示例格式
<audio id="audio" src="你的音乐文件路径" controls="" lyricpath="你的json歌词文件路径"></audio>你需要在需要显示歌词的html文字标签使用id:lyric
并且包含class:lyric
副歌词(双语歌词)使用id:pairlyric
如果你想要实现频谱条效果,可以创建canvas
<canvas id="spectrum" width="自定义" height="自定义"></canvas>LxgwWenKai等提供美观的字体
API提供:music.163.com,meting.qjqq.cn>Meting-API=>api.qijieya.cn/meting,api.vkeys.cn/v2/music/tencent/>落月API - QQMusic,Netease_url
QQ音乐备用API修改于项目QRCD - xmcp
所有指点/指导的人,包括但不限于:RainView,LeonspaceX,Silvaire-qwq,Mio,LYXOfficial,Android-KitKat,Ariasaka
所包含的歌曲制作人
Footnotes
-
原旧名“Etmusic”名字冲突,现已更改。Mrachritmo是мрачный的音译Mrachnyi与ritmo的融合 ↩




