首页 > 其他分享 >基于Hexo和Butterfly创建个人技术博客,(14) 给博客站点添加Aplayer音乐

基于Hexo和Butterfly创建个人技术博客,(14) 给博客站点添加Aplayer音乐

时间:2023-08-13 15:38:40浏览次数:51  
标签:Butterfly 插件 Hexo url 音乐 博客 aplayer var id


本章目标: 掌握aplayer音乐插件的用法给博客站点添加音乐功能

一、概述

个人比较倾向网站以简洁为主,并不赞成把网站做成花里虎哨的,比如添加鼠标特效或各种动态的元素。但个人站点的随意性比较大,虽没必要做成全局的音乐播放能力,但还是可以做成单独页或在无关紧的模块添加音乐功能。

笔者在自己的博客上做了一个单独的音乐页、又在个人相册页加了一个简化版本的音乐控件。

笔者使用的是Aplayer+meting2 aplayer :音乐播放 meting2:包装了aplayer带了播放列表功能

很多教程的集成方法是直接安装上述两个插件包,然后再在页面中引入,其实笔者并不建议这种做法,因为这种方法插件所需要的.js文件会从站点加载,其实笔者更建议直接编码引用各免费CDN的资源,详细如下:

二、添加单独的音乐页

实际效果可点击blog.korg8.com来查看,即网站最下方footer部分的来杯咖啡超链接,效果图如下:

基于Hexo和Butterfly创建个人技术博客,(14) 给博客站点添加Aplayer音乐_播放列表

**实现方式:**用hexo new创建一个一个普通页,然后在页面中加入以下代码。

<div id="music-page">
</div>
<script>
    var userId = "60198";
    var userServer = "netease";
    var userType = "playlist";
</script>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/APlayer.min.css">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/APlayer.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/Meting.min.js"></script>

<script>
    const params = new URLSearchParams(window.location.search);
    var _param = {
         getCustomPlayList: function () {
            const musicPage = document.getElementById("music-page");
            const playlistType = params.get("type") || "playlist";
            if (params.get("id") && params.get("server")) {
                var id = params.get("id");
                var server = params.get("server");
                musicPage.innerHTML = `<meting-js listMaxHeight="600px"id="${id}"server="${server}"type="${playlistType}"mutex="true"preload="auto"order="random"autoplay="true"></meting-js>`;
            } else {
                musicPage.innerHTML = `<meting-js listMaxHeight="600px"id="${userId}"server="${userServer}"type="${userType}"mutex="true"preload="auto"order="random"autoplay=true></meting-js>`;
            }
        }
    };

    _param.getCustomPlayList();
    const vh = window.innerHeight * 1;
    document.documentElement.style.setProperty('--vh', `${vh}px`);
    window.addEventListener('resize', () => {
        let vh = window.innerHeight * 1;
        document.documentElement.style.setProperty('--vh', `${vh}px`);
    });

</script>

参数说明

  • userServer: 指定调用的 API ,可选 netease, tencent, kugou, xiami, baidu ,分别对应网易云音乐、QQ音乐、酷狗音乐、虾米音乐、百度音乐
  • userType: 指定调用类型,可选 song, playlist, album, search, artist ,分别对应单曲、歌单、专辑、搜索结果、艺术家
  • userId:播放列表,这个播放列表可以登陆上述音乐网站,然后点击相应的音乐分类,然后可以浏览器的url中的id参数得到

三、给页面填写音乐部件

实际效果可点击blog.korg8.com导航栏的live时光超链接,效果图如下:

基于Hexo和Butterfly创建个人技术博客,(14) 给博客站点添加Aplayer音乐_hexo_02

实现方法

在需要添加音乐部件的页面,添加如下代码:

<div id="music-page">
</div>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/APlayer.min.css">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/APlayer.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/Meting.min.js"></script>

<script>
    var _param = {
         getCustomPlayList: function () {
            const musicPage = document.getElementById("music-page");
            musicPage.innerHTML = `<meting-js 
                    id="379025025"
                    server="netease"
                    type="playlist"
                    autoplay=true
                    mutex="true"
                    preload="auto"
                    order="random"mini=true></meting-js>`;
        }
    };

   _param.getCustomPlayList();

</script>

.md文件是可以和html代码混写的,笔者上述的例子就是在.md文件中直接添加的。

四、插件使用方法

Aplayer插件中默认自带了meting插件,所以只安装一个插件即可,方法如下:

使用aplayer插件

  1. 安装插件 $ npm install --save hexo-tag-aplayer
  2. 在任意一个Markdown文件里使用 形如以下代码即可使用播放音乐{% aplayer title author url lrc:xxx %},例子如下:
{% aplayer 断点 张敬轩 https://music.163.com/song/media/outer/url?id=189323.mp3  %}

命令格式:

{% 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 地址

使用meting插件

  1. 在 Hexo 配置文件 _config.yml 中设置:
aplayer:
  meting: true
  1. 在任意一个Markdown文件里使用 形如以下代码即可使用播放音乐{% meting "2410869513" "netease" "playlist" %}

命令格式:

{% meting "60198" "netease" "playlist" "autoplay" "mutex:false" "listmaxheight:340px" "preload:none" "theme:#ad7a86"%}

参数详细:

选项

默认值

描述

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

播放器风格色彩设置

标签:Butterfly,插件,Hexo,url,音乐,博客,aplayer,var,id
From: https://blog.51cto.com/arch/7066880

相关文章

  • Typora上传文件到博客园解决图片问题
    EasyBlogImageForTypora使用Typora写作,图片即时同步到博客网站,无需第三方图床,写完可直接粘贴。支持网络图片上传。适用范围本程序基于.netcore3.1开发,支持在win-x64,macosx-x64系统运行,免安装。linux暂时不考虑,如果有需要再说。程序的上传服务是使用MetaWebBlogAPI,MetaWe......
  • 对博客美化的尝试
    随手粘一个以前oi时期的博文看看效果今天考试T1考这个,以前只在床上看书时推过一遍,现在忘完了。复习(重学)一下。学习博客:CSDNOIWIKIDFS树树枝边:DFS时经过的边,即DFS搜索树上的边。前向边:与DFS方向一致,从某个结点指向其某个子孙的边。后向边:与DFS方向相反,从某个结点指向其......
  • 8.7-8.13学习总结博客五:Hive进阶与复杂查询
    博客题目:学习总结五:Hive进阶与复杂查询实践内容概要:学习Hive进阶的使用方法,包括复杂查询、数据转换和性能优化等方面的知识。学习资源:推荐的Hive进阶教程、实践案例和性能优化技巧。实践内容:通过编写复杂的Hive查询语句,探索Hive的高级功能和性能优化方法,并分享实践中的挑战和解决......
  • 2023.8.7-2023.8.14暑假第五周博客
    2023.8.7今天人在外,因此博客休息一天图片如下 2023.8.8今天对hive有了进一步的了解首先要明确一个流程当我打开三台虚拟机,用finalshell连接上后首先要使用如下命令1.su-hadoop切换到hadoop用户,大部分操作都必须在hadoop用户中完成,而千万不要再root中,因为root用户一......
  • 关于博客园星火燎原的一些小建议
    前言 还记得2016年的那个冬天,在工作几年以后,面试时总会被人问及类似【会什么,掌握了什么开发技能,工作中有哪些成绩】的问题,后来几经分析,发现也并没有什么可以拿得出手的东西,而且有些能力也不是自己说,面试官就会采信。加上有些项目是公司资源,涉及到信息安全,保密等因素,并不能拿出......
  • 本地文件上传博客园
    test#include<stdio.h>voidmain(){}changedsanfasdfsadhfjhttps://blog.csdn.net/Leihaifei/article/details/122105929gaskjsalkfjklaakljsdlklkfassfjasfjjfgsdhgsdflkgjksldjgbeifa......
  • 站长公益主机,免费主机➕免费域名➕博客申请➕论坛申请
    站长公益主机在出教程之前准备好久,测试搭建轻量论坛无压力站长公益主机,免费主机➕免费域名➕博客申请➕论坛申请参考地址:fourm.bolgk.eu.org......
  • 博客day01
    Markdown学习标题三级标题四级标题 字体hollo,word!hollo,word!hollo,word!hollo,word! 应用 分割线 图片   超链接点击跳转到狂神博客 列表ABCAB 表格名字性别生日张三男1997.1.1代码1| ......
  • 博客园美化
    主要参考博客与问题https://www.cnblogs.com/anan-java/p/12196061.htmlhttps://www.cnblogs.com/WhiteTears/p/8824544.html博客园会将上传文件与历史上传文件名进行比对,文件名相同,博客园保留历史版本而不会保留更改,上传的文件是改变了的,但是在设置里面如果链接相同因为历史版......
  • 我的第一篇博客--C++课程设计
    目录前言一、题目1.数位之和2.数字排序3.字符串匹配二、问题分析1.数位之和2.数字排序3.字符串匹配三、具体代码1.数位之和2.数字排序3.字符串匹配总结前言这是我的第一篇博客,内容便是最近所做的课程设计,之后也会每天和大家分享一下刷题笔记,以及AC后的代码,希望大家的批评指正,分享大......