Skip to content

Repository files navigation

Mrachritmo1

——一个孤独的音乐播放库

一个支持卡拉ok和逐字(或词)淡入淡出效果的Web字幕音乐播放器音乐库

可通过网易云歌单自动部署

可按T键切换歌词显示模式

默认包含了一些歌曲和歌词

部署要求

NodeJS>=20(完整的ES6模块支持,File API及现代JavaScript语法等)

Demo演示

https://music.emnasop.cn/

效果

目前共有三种效果,默认随机

卡拉OK(较大众)

万能模式,可读性最好

淡出淡入(较小众)

适合逐个字的意音/音节文字(如中文,日语,韩语),以及逐个词的音位文字(如英语,俄语),不适合逐个字的音位文字(如英语,俄语),以及快节奏歌词

随机淡出淡入(由上衍生而来)

接近万能。

两个歌曲分别是祖海的《为了谁》,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 保存歌单快照,只处理新增或发生变化的歌曲; 歌单请求全部失败时不会覆盖现有资源。

使用Hi-Res音质

你须在本地部署另一个项目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

  1. 原旧名“Etmusic”名字冲突,现已更改。Mrachritmo是мрачный的音译Mrachnyi与ritmo的融合

About

一个支持逐字(或词)字幕的网页本地音乐播放器(包含卡拉ok字幕) A webpage local music player that supports word-by-word subtitles(Including karaoke subtitles)

Topics

Resources

Stars

8 stars

Watchers

0 watching

Forks

Contributors

Languages