原文首发自:https://wiki.hushhw.cn/posts/a84d1ef1.html

今天折腾的点是给博客中插入音乐,找到的具体可行的方案有:

  • 使用音乐平台提供的插件 体验很差
  • 使用hexo-tag-aplayer插件 排了坑后体验极佳

使用音乐平台提供插件

以网易云为例,网页端点击生成外链播放器即可生成外链代码,如我的某个歌单生成外链。

可以在自己博客页面中嵌入插件:

<iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width=530 height=310 src="//music.163.com/outchain/player?type=0&id=2205641361&auto=0&height=430">
</iframe>

效果:

缺点非常明显,而最不能忍得是网易音乐有些音乐因为版权保护,没办法生成外链:

[外链图片转存失败(img-nQjLxkao-1567680931243)(https://qn.hushhw.cn/images/Snipaste_2019-01-22_22-55-46.png)]

使用 hexo-tag-aplayer 插件

hexo-tag-aplayer 就是将 APlayer 内嵌入博客页面的 Hexo 插件。

安装执行:

$ npm install --save hexo-tag-aplayer

原先 hexo-tag-aplayer 不支持 MetingJS,使得需要图片url,音乐url等等参数,操作起来都很麻烦,需要去音乐网站扒音乐播放链接或者下载下来存储在七牛云或本地,要了解具体参数和使用可以查看其中文文档了解。

MeingJS 支持 (3.0 新功能)

MetingJS 是基于Meting API 的 APlayer 衍生播放器,引入 MetingJS 后,播放器将支持对于 QQ音乐、网易云音乐、虾米、酷狗、百度等平台的音乐播放。

如果想在本插件中使用 MetingJS,请在 Hexo 配置文件 _config.yml 中设置:

aplayer:meting: true

接着就可以 在文章中使用 MetingJS 播放器了,例如打开网易云音乐网站找到这首coldplay的《Viva la Vida》,从url中可以得到其id3986040,按下面格式即可使用:

{% meting "3986040" "netease" "song" "theme:#555" "mutex:true" "listmaxheight:340px" "preload:auto" %}

再来一个歌单模板:

{% meting "627070825" "netease" "playlist" "theme:#555" "mutex:true" "listmaxheight:340px" "preload:auto" %}

有关选项列表如下:

选项 默认值 描述
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 播放器风格色彩设置

遇到的坑

我原先是用的主题是yilia,非常喜欢它的相册功能,于是换到现在的主题后把该功能移植了过来,如果有小伙伴也想要实现可以参看我的这篇文章:『Hexo主题maupassant博客搭建相册』。

当把hexo-tag-aplayer 配置好并且用几个页面测试后,发现相册功能失效了,查找问题后发现在ins.js中自动加了下面这些代码导致的失效。

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer@1.10/dist/APlayer.min.css">
<script src="https://cdn.jsdelivr.net/npm/aplayer@1.10/dist/APlayer.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/meting@1.2/dist/Meting.min.js"></script>

经过一番在网上寻找后无果后,于是决定仔细研读官方文档,查看官方的中文文档后发现,可能是插件的自动脚本插入功能导致的,使得ins.js中自动插入了代码,于是关闭该功能试试:

aplayer:asset_inject: false

关闭后确实解决了问题,相册功能恢复,下面的问题就是自己配置插件,在需要的地方引用代码了。

####1. 恢复post页面插件功能

我是使用的主题maupassant-hexo都是用的是.pug格式,其他小伙伴根据自己的渲染文件进行修改。

主题配置页面写入:

# 播放器
aplayer:enable: true

新建文件aplayer.pug放在/layout/_partial文件夹下,写入:

link(rel="stylesheet" type='text/css', href="https://cdn.jsdelivr.net/npm/aplayer@1.10/dist/APlayer.min.css")
script(type='text/javascript', src="https://cdn.jsdelivr.net/npm/aplayer@1.10/dist/APlayer.min.js")
script(type='text/javascript', src="https://cdn.jsdelivr.net/npm/meting@1.2/dist/Meting.min.js")

最后在post.pug中引用即可:

if theme.aplayer.enableinclude _partial/aplayer.pug

这样在文章页面可以使用该插件了。

可以通过本地hexo server来检查一下文章页面head中有没有成功引入。

2. 在非post页面使用插件功能

我在/source/文件夹下自定义的页面life,我需要该页面使用插件,最简单的方式就是直接在index.md中引用:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer@1.10/dist/APlayer.min.css">
<script src="https://cdn.jsdelivr.net/npm/aplayer@1.10/dist/APlayer.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/meting@1.2/dist/Meting.min.js"></script>

]

最终效果:

]

本文参考自:

https://github.com/MoePlayer/hexo-tag-aplayer

https://tianma.space/post/3998746934/index.html

Hexo主题插入音乐之aplayer音乐播放器相关推荐

  1. Hexo+Next用aplayer做播放器

    aplayer是一个HTML5的音乐播放器 先上效果图 安装aplayer插件 在Hexo的根目录输入一下命令 npm install aplayer --save ##注意不是hexo-tag-ap ...

  2. 仿网易云音乐客户端的底部播放器的实现思路

    2019独角兽企业重金招聘Python工程师标准>>> 猜测网易云音乐是写了baseactivity,每一个activity底部都有一个播放器,注意网易云音乐的页面切换没有动画效果, ...

  3. Guayadeque成为音乐爱好者的开源播放器的6个原因

    最近,我将笔记本电脑的Linux升级到了最新版本,我惊讶和难过地发现,出色的音乐播放器Guayadeque似乎至少在Debian和Ubuntu中被认为是上游产品. 在1月的博客文章中 ,原始作者Jua ...

  4. Html5+Css3实现类似网易云音乐的移动版播放器

    Demo Demo链接如下(支持Chrome与Safari,其它浏览器未测试)并非太完善,主体功能已实现,其它功能有时间在加上吧. http://followyourheart.sinaapp.com ...

  5. 一款免费听音乐和下载的播放器

    引子 深夜孤枕难眠,顿觉人生无趣!突然想起一句话来,小时候为啥那么快乐,因为那个时候丑和穷没那么明显! 再想下去TM的都没法活了,果断起来听首歌压压惊!但是尼玛,打开音乐播放器,比如如说,酷狗,网易, ...

  6. Jo音乐——歌曲下载与播放器

    更多文章请关注我的博客 简介 这是我一年前的课设 它写作歌曲播放器,读作wyy歌曲下载器() 它能勉强跑起来 它是一坨屎山 Github仓库 功能 所以,它就是一个极其简陋的音乐播放器,它大概长这个样 ...

  7. Java运用jna、vlcj实现音乐和视频的播放器1-主界面设计

    一.播放器主框架 public class MainFrame {public JFrame frame;public int width = 100;public int height = 350; ...

  8. Android实训日志:基于外部存储的音乐播放器V05

    目录 项目功能 实现步骤 创建安卓应用 将图片素材放入drawable 按钮图片选择器 编写主布局文件 编写字符串文件 创建音乐列表项模板music_name_list_item.xml 创建ui子包 ...

  9. 网易云音乐外链播放器代码的一个bug

    最近想给网站里插入一个音乐,虽然网易云音乐支持外链播放器,但是实在是太不容易了.这里建议大家用本地音乐. 首先网易云音乐大部分歌曲是不支持外链播放器的,像是这样: csdn里也有很多博客写到可以找到这 ...

最新文章

  1. pythonexcel汇总_用python汇总excel表格数据-怎样用python遍历表格中的内容
  2. spoj Pattern Find(kmp)
  3. 在Microsoft Azure上运行Eclipse MicroProfile
  4. 原理解析 | 深入了解 Apache Flink 的网络协议栈
  5. 区间DP lightoj 1422
  6. Python中的unittest模块(入门学习款)
  7. 小写数字转大写_微软太坏了,这个函数居然被隐藏了,用它搞定数值转中文大小写...
  8. 【 PID 算法 】PID 算法基础
  9. 局域网显示服务器未启动,“Workstation服务器无法启动,所以上不连局域网解决方案”的解决方案...
  10. layui 勾选不联动父项 树形控件,treetable-lay
  11. php抽奖中了奖品后怎么处理,抽奖程序,求思路.该怎么处理
  12. 2020山东大学软件测试期末试题
  13. UWB是什么技术,主要的技术特点是什么?
  14. U盘可见空间只有200M的解决方法
  15. flink SourceFunction could not be inferred. Support for synthetic interfaces, lambdas, and generic
  16. uniapp使用讯飞语音合成
  17. 完整数字华容道05:游戏结束
  18. 深度学习研究理解:OverFeat:Integrated Recognition, Localization and Detection using Convolutional Networks
  19. 义务教师 obligatory tutor
  20. 我们所以为的“云计算”

热门文章

  1. EAS F7控件弹出表格隐藏某列
  2. EAS添加bos选不到的基础资料
  3. 快手智能处理与编码算法产品化之路
  4. 未明学院活动:领跑新年活动!寒假1个月,掌握券商/互联网/机器学习等七大热门行业实战技能!
  5. BCOP章鱼船长,6月22日晚上8点上线薄饼
  6. 年薪80万+年终奖汽车|显扬科技招聘三维机器视觉研发总监、高级三维算法工程师...
  7. python四级成绩_python 批量爬取四级成绩单
  8. [Xamarin.forms] FontAwesome图标字体库用法
  9. ArcGIS水文分析提取河网、流域、湖泊
  10. 短信接口防刷,限制IP的访问 部分笔记!