571 字
3 分钟
为你的Fuwari博客添加音乐播放器!
CAUTION

您应该在浏览下面的内容前备份您的博客文件夹,以防止您的重要数据丢失

正式开始#

WPwebplayer方案#

偶然发现2x.nz上的一个音乐播放器WPwebplayer,感觉挺好看的,于是把它放进了博客里。

修改博客根目录下的src/layouts/Layout.astro#

Ctrl+F搜索</head>,定位之后在</head>上一行粘贴如下代码:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/wpwebplayer@1.1.5/min-css.css">
<script src="https://cdn.jsdelivr.net/npm/wpwebplayer@1.1.5/min-js.js"></script>

这样你就引入了WPwebplayer的样式和js,我们继续修改,Ctrl+F定位到</body>,在</body>上一行写粘贴如下代码:

<wp-music-player
src=""
title=""
artist=""
cover=""
autoplay="true"
loop="true"
volume="0.1"
fixed="true"
mini="true"
theme="#ff6b6b">
</wp-music-player>

参数说明:

属性类型默认值描述
srcstring音频文件地址(必须)
titlestring音乐标题
artiststring作者
coverstring封面图片URL
autoplaytrue / falsefalse是否自动播放
looptrue / falsetrue是否循环播放
volumenumber (0~1)1.0初始音量(0~1)
fixedtrue / falsetrue是否固定样式
minitrue / falsetrue是否迷你模式
themestring(色值)#00c3ff主题颜色

往里填你的自定义参数就行了,然后pnpm run dev查看你的成果:

唯一的缺点就是不支持多首歌,不过挺好看的

Aplayer方案#

上一个方案不支持多首歌或者网易云歌单,这个方案使用Aplayer实现在侧边栏显示歌曲播放卡片

这个方案是在ikamusume7.org上看到的,感谢大佬

在博客根目录下的src\components\widget文件夹中创建APlayer.svelte文件#

你的博客目录\src\components\widget文件夹下创建文件APlayer.svelte

<div class="meting" id="meting">
<!-- require APlayer -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css">
<script src="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script>
<!-- require MetingJS -->
<script src="https://cdn.jsdelivr.net/npm/meting@2/dist/Meting.min.js"></script>
<meting-js
server="netease"
type="playlist"
id="你的网易云歌单ID"
order="random"
list-folded="true">
</meting-js>
</div>

创建Music.astro文件#

然后在同目录下创建文件Music.astro

---
import WidgetLayout from './WidgetLayout.astro'
import APlayer from './APlayer.svelte'
const COLLAPSED_HEIGHT = '7.5rem'
interface Props {
class?: string
style?: string
}
const className = Astro.props.class
const style = Astro.props.style
const isCollapsed = false
---
<WidgetLayout name="音乐" id="music" isCollapsed={isCollapsed} collapsedHeight={COLLAPSED_HEIGHT} class={className} style={style}>
<div class="flex flex-col gap-1">
<APlayer client:only="svelte"/>
</div>
</WidgetLayout>

修改src\components\widget\SideBar.astro文件#

---
import type { MarkdownHeading } from "astro";
import Categories from "./Categories.astro";
import Profile from "./Profile.astro";
import Tag from "./Tags.astro";
import Music from './Music.astro'
interface Props {
class?: string;
headings?: MarkdownHeading[];
}
const className = Astro.props.class;
---
<div id="sidebar" class:list={[className, "w-full"]}>
<div class="flex flex-col w-full gap-4 mb-4">
<Profile></Profile>
</div>
<div id="sidebar-sticky" class="transition-all duration-700 flex flex-col w-full gap-4 top-4 sticky top-4">
<Categories class="onload-animation" style="animation-delay: 150ms"></Categories>
<Tag class="onload-animation" style="animation-delay: 200ms"></Tag>
div id="music" class="flex flex-col w-full gap-4">
<Music></Music>
</div>
</div>
</div>

完毕,pnpm run dev查看你的成果

为你的Fuwari博客添加音乐播放器!
https://klqn.top/posts/cv0008/
作者
丘比女王
发布于
2025-08-22
许可协议
CC BY-NC-SA 4.0
封面
示例歌曲
示例艺术家
封面
示例歌曲
示例艺术家
0:00 / 0:00