惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
G
Google Developers Blog
博客园 - 三生石上(FineUI控件)
Last Week in AI
Last Week in AI
IT之家
IT之家
博客园_首页
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
爱范儿
爱范儿
大猫的无限游戏
大猫的无限游戏
博客园 - Franky
U
Unit 42
Security Archives - TechRepublic
Security Archives - TechRepublic
C
Cisco Blogs
S
Schneier on Security
T
Threatpost
阮一峰的网络日志
阮一峰的网络日志
Microsoft Security Blog
Microsoft Security Blog
The Cloudflare Blog
博客园 - 聂微东
C
Cybersecurity and Infrastructure Security Agency CISA
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Blog — PlanetScale
Blog — PlanetScale
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Engineering at Meta
Engineering at Meta
M
MIT News - Artificial intelligence
aimingoo的专栏
aimingoo的专栏
博客园 - 叶小钗
Cisco Talos Blog
Cisco Talos Blog
P
Palo Alto Networks Blog
MongoDB | Blog
MongoDB | Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
V
V2EX
L
Lohrmann on Cybersecurity
Latest news
Latest news
小众软件
小众软件
有赞技术团队
有赞技术团队
Know Your Adversary
Know Your Adversary
Simon Willison's Weblog
Simon Willison's Weblog
B
Blog
雷峰网
雷峰网
K
Kaspersky official blog
美团技术团队
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
Check Point Blog
Recorded Future
Recorded Future
博客园 - 【当耐特】
Microsoft Azure Blog
Microsoft Azure Blog
H
Help Net Security

涵哲子居

针对于Win用户与Linux用户的战争问题 - 涵哲子居 夏雨自读 - 涵哲子居 初中最后的地生 - 涵哲子居 初中最后的地生 - 涵哲子居 凌侮行径的本质探讨 - 涵哲子居 凌侮行径的本质探讨 - 涵哲子居 我对开源软件与自由软件的看法 我对开源软件与自由软件的看法 - 涵哲子居 如何分类现代编程方法?我对当代编程的理解 - 涵哲子居 如何分类现代编程方法?我对当代编程的理解 我们必须正确认识AI在开发中的作用 我们必须正确认识AI在开发中的作用 - 涵哲子居 浅显利益论 浅显利益论 - 涵哲子居 稳定性与价格——深思如何选择“大厂”与“小厂”服务 稳定性与价格——深思如何选择“大厂”与“小厂”服务 - 涵哲子居 何为学,为何学 何为学,为何学 - 涵哲子居 无聊的人和无趣的人 无聊的人和无趣的人 - 涵哲子居 谈计算机与小男娘 许平·空然 何以止举? 无言以对尔等 丙午杂言 丙午杂言 - 涵哲子居 Termux在Proot内播放音频文件的问题 Termux在Proot内播放音频文件的问题 - 涵哲子居 LeanCloud 停服: 一次关于服务选择的思考 LeanCloud 停服: 一次关于服务选择的思考 - 涵哲子居 记一次使用Zellij的体验 记一次使用Zellij的体验 - 涵哲子居 给fuwari添加NMP播放器 浅谈个人生态链 浅谈个人生态链 - 涵哲子居 [过时] Termux:通用基础包 Hexo博客搭建之从入门到入土 [过时] Termux:通用基础包 - 涵哲子居 Hexo博客搭建之从入门到入土 - 涵哲子居 乙巳杂言 乙巳杂言 - 涵哲子居
给fuwari添加NMP播放器 - 涵哲子居
涵哲子 · 2025-11-16 · via 涵哲子居

上周在逛 Bilibili 的时候,偶然刷到了这个项目,UI 尚可,便尝试一下。 官网:https://nmp.hypcvgm.top

准备工具#

  • 一个善良、友好的 AI,在报错时先问问它
  • 一个优良的、已经配置好的环境,Windows 建议使用 Git BashWSL(文章使用 TermuxProot-distro Archlinux 环境),应有:
    • 已经配置好的 Git 环境
    • nodejs + pnpmnpm
    • 一个符合自己使用习惯的 IDE(文章使用自己配置的 Neovim
  • NMP 文档:https://docs.nmp.hypcvgm.top
TIP
  1. NMP 仅支持网易云歌曲,若有需求可以寻找其它播放器

  2. 若想要播放 VIP 歌曲,请在 NMP文档 自行配置 api

Let us go!#

TIP

本文只介绍 浮动模式, 这是最常用的模式,会出现在博客四角处,可以缩小/放大


下载 css 与 js 文件(使用 CDN 可以略过)#

下载链接: Github

下载后解压,拿出 netease-mini-player-v2.cssnetease-mini-player-v2.js,放到博客根目录下的该位置:

  • public/NMP/

配置 Components#

新建文件 NMP.astro

---

---

<!-- NeteaseMiniPlayer -->

<div

class="netease-mini-player"

data-playlist-id="${yourOwnPlaylistId}"

data-embed="false"

data-position="bottom-left"

data-lyric="true"

data-theme="auto">

</div>

<link

rel="stylesheet"

href="/NMP/netease-mini-player-v2.css" />

<script is:inline

src="/NMP/netease-mini-player-v2.js">

</script>

请将 ${yourOwnPlaylistId} 替换为自己的 歌单id

NOTE

如果使用 CDN,请对文件后半部分进行替换:

<link

rel="stylesheet"

href="/NMP/netease-mini-player-v2.css" />

<script is:inline

src="/NMP/netease-mini-player-v2.js">

</script>

<link

rel="stylesheet"

href="https://api.hypcvgm.top/NeteaseMiniPlayer/netease-mini-player-v2.css" />

<script is:inline

src="https://api.hypcvgm.top/NeteaseMiniPlayer/netease-mini-player-v2.js">

</script>

配置 Layout#

更改文件 Layout.astro:

---

import NMP from "@components/NMP.astro";

import "@fontsource/roboto/400.css";

import "@fontsource/roboto/500.css";

import "@fontsource/roboto/700.css";

import ConfigCarrier from "@components/ConfigCarrier.astro";

import { profileConfig, siteConfig } from "@/config";---

import NMP from "@components/NMP.astro";

import "@fontsource/roboto/400.css";

import "@fontsource/roboto/500.css";

import "@fontsource/roboto/700.css";

import ConfigCarrier from "@components/ConfigCarrier.astro";

import { profileConfig, siteConfig } from "@/config";

...

if (window.swup) {

setup()

} else {

document.addEventListener("swup:enable", setup)

}

</script>

<NMP />

上线测试#

已经成功配置!