博客搭建教程:音频教程
无法在butterfly外挂标签中使用该插件,但是单独使用没有问题。
博客搭建教程导航
基础介绍
Hexo 博客的音频插件名称为
hexo-tag-aplayer
,它支持常用的播放器为 APlayer
和 其他衍生的播放器 MetingJS
。APlayer
一般用于播放自定义的音频。MetingJS
用于各大主流的音乐平台。要使用音频插件,在配置文件中要打开相关开关,或在文章开头进行使能。而在markdown中使用该工具是,有两套语言都可以写,一套是Html标签,一套是
hexo-tag-aplayer
自带的。具体方法如下:
配置环境
安装插件
hexo-tag-aplayer:
1 | npm install --save hexo-tag-aplayer |
APlayer:
1 | npm install aplayer --save |
Hexo博客设置
- 修改_config.yml文件:
1 | aplayer: |
- 如果使用
APlayer
播放器,则asset_inject
须设置为true
。 - 如果只使用
MetingJS
播放器,则asset_inject
可以设置为false
。 asset_inject
设置为true
,否会导致butterfly
网页主页面渲染异常,如无法加载背景等问题。目前没有办法解决。此时会给相关文件自动加入和 aplayer相关的 css 和 js 依赖。但是也会在 js 文件中的头部引入多余的代码造成错误。此时想要在文章中使用 aplayer 需要通过其他途径,后面的内容会提到。
- 修改_config.butterfly.yml文件:
1 | # Inject the css and script (aplayer/meting) |
- 文章开头添加:
1 | aplayer: true |
APlayer
方式一:标签法
1 | {% aplayer title author url [picture_url, narrow, autoplay, width:xxx, lrc:xxx] %} |
title
: 曲目标题author
: 曲目作者url
: 音乐文件 URL 地址picture_url
: (可选) 音乐对应的图片地址narrow
: (可选)播放器袖珍风格autoplay
: (可选) 自动播放,移动端浏览器暂时不支持此功能width:xxx
: (可选) 播放器宽度 (默认: 100%)lrc:xxx
: (可选)歌词文件 URL 地址
1 | 以下在 `butterfly` 主题下无法渲染: |
演示效果
以下在 butterfly
主题下无法渲染:
演示文字,无意义。
只有当把 asset_inject 设置为 true 时可以把音频渲染成功,但是要把 public 里的 js 和 css 文件头部增加的错误代码删除,所以这不是一个好办法,那么采用下面的办法。
方式二:Html
此时已经默认会导入了 aplayer.min.css 和 aplayer.min.js 依赖。
参照 aplayer 官网的说明,我们需要添加一个自定义的 js 文件放在 source/js/ 里,我取名为 aplayerExample.js。然后再 _config.butterfly.yml 文件中添加 js 脚本:
1 | - <script defer src="/js/aplayerExample.js"></script> # aplayerAdunas |
然后在其中写入官网提供的js内容,并修改为自己的 mp3 文件:
1 | const ap = new APlayer({ |
然后在博客中插入 Html 元素,id 名保持一致即可:
1 | {% raw %} |
演示效果如下:
其中 aplayerExampleB 为列表。需要注意的是,只对第一个 id 有效,使用第一个 id 后,第二个 id 也可以正常使用了,直接使用第二个 id 会报错,原因未知。
全局吸底
方式一:Html
这里直接在博客中引入依赖,复制粘贴过去就能使用:
1 | {% raw %} |
MetingJS
1 | {% meting id server type [fixed, mini, loop, order, volume, ……] %} |
选项 | 默认值 | 描述 |
---|---|---|
id | 必须值 | 歌曲 id / 播放列表 id / 相册 id / 搜索关键字 |
server | 必须值 | 音乐平台: netease , tencent ,
kugou , xiami , baidu |
type | 必须值 | song , playlist , album ,
search , artist |
fixed | false |
开启固定模式 |
mini | false |
开启迷你模式 |
loop | all |
列表循环模式:all ,
one ,none |
order | list |
列表播放模式: list , random |
volume | 0.7 | 播放器音量 |
lrctype | 0 | 歌词格式类型 |
listfolded | false |
指定音乐播放列表是否折叠 |
storagename | metingjs |
LocalStorage 中存储播放器设定的键名 |
autoplay | true |
自动播放,移动端浏览器暂时不支持此功能 |
mutex | true |
该选项开启时,如果同页面有其他 aplayer 播放,该播放器会暂停 |
listmaxheight | 340px |
播放列表的最大长度 |
preload | auto |
音乐文件预载入模式,可选项: none ,
metadata , auto |
theme | #ad7a86 |
播放器风格色彩设置 |
- 在网易云音乐中创建自己的歌单,会产生一个
"id"
。例如: - VIP音乐只能听30s,无版权的音乐无法播放,会跳过。
- 自动播放时加入
"autoplay"
参数;不自动播放不加该参数,如果写"autoplay = false"
或者"autoplay:false"
都是错误的,会使网页渲染失败。
1 |   渲染效果中去除自动播放,以免影响网页阅读体验。 |
演示效果
渲染效果中去除自动播放,以免影响网页阅读体验。
迷你模式: 或者:列表模式:
演示文字,无意义。