
安装之后在清华云盘生成直接下载链接即可!!!
本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net
title: “在 Hexo 博客中使用 APlayer 和 Meting 音乐播放器”
date: “2021-10-16”
categories:
tags:
依赖:
在 hexo 中使用 aplayer 插件:
1 | npm install --save hexo-tag-aplayer |
1 | {% aplayer title author url [picture_url, narrow, autoplay, width:xxx, lrc:xxx] %} |
示例我写的:
1 | {% aplayer "Shape of You" "Ed Sheeran""http://music.163.com/song/media/outer/url?id=447925558.mp3" %} |
aplayer: 固定参数,必填title: 曲目标题author: 曲目作者url: 音乐文件 URL 地址picture_url: (可选) 音乐对应的图片地址narrow: (可选)播放器袖珍风格autoplay: (可选) 自动播放,移动端浏览器不支持此功能width: xxx: (可选) 播放器宽度 (默认: 100%)lrc: xxx: (可选)歌词文件 URL 地址当开启 Hexo 的文章资源文件夹功能时,可以将图片、音乐文件、歌词文件放入与文章对应的资源文件夹中,然后直接引用:
1 | {% aplayer "Caffeine" "Jeff Williams" "caffeine.mp3" "picture.jpg" "lrc:caffeine.txt" %} |
资源文件引用 hexo 教程资源文件夹
除了通过 lrc 参数指定外,可以直接在博客中使用 aplayerlrc 标签插入歌词:
1 | {% aplayerlrc "title" "author" "url" "autoplay" %} |
支持播放列表:
1 | {% aplayerlist %} |
MetingJS 是 APlayer 衍生播放器,支持多个音乐平台的播放。
在 Hexo 配置文件_config.yml中设置:
1 | aplayer: |
1 | <!-- 简单示例 --> |
参考 Meting 的官方文档了解所有支持的参数。
Meting 允许你通过不同的参数来自定义播放器的行为和外观。
| 参数 | 默认值 | 描述 |
|---|---|---|
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 | 播放器风格色彩设置 |
1 | <!-- require APlayer --> |
1 | <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css"> |
Meting.js 的使用非常简单,只需指定对应平台的相关信息即可。以下是针对你提到的平台的基本操作指南:
1 | <!-- 网易云音乐歌单 --> |
1 | <!-- QQ音乐歌单 --> |
1 | <!-- 酷狗音乐歌单 --> |
1 | <!-- 酷我音乐歌单 --> |
1 | <!-- 喜马拉雅FM电台 --> |
1 | <!-- Bilibili音乐视频 --> |
对于上述代码中的 id,你需要将 歌单ID、电台ID 或 视频ID 替换为实际的 id 编号,这些可以在各自平台上找到对应的资源 ID。fixed="true" 属性是表示播放器会固定在页面底部,你可以根据实际需要进行调整。
请注意,server、type 和 id 是必填属性。server 表示音乐平台,type 表示加载的资源类型(歌曲、专辑、歌单等),id 则是资源在其服务平台上的唯一标识符。
为了确保版权问题,使用这些代码时要保证拥有相应的版权或授权。以上是基本的操作指南,具体情况可能会根据 Meting.js 的版本更新而有所变动,为保证准确性,请参考最新的官方文档或资源库信息。
本文由 简悦 SimpRead 转码, 原文地址 andergh.github.io
热爱可抵岁月漫长
在博客中插入音频,处于音频播放顺畅和音乐版权考虑,我们一般选择各个平台的在线音频,使用播放器进行在线播放,本地加载的话,github服务器缓存可能较慢
音乐网站一般会提供自家的音频外链播放器,便于其他平台集成,例如网易云音乐,在官网上搜索需要的音乐
点击音乐头像下面的生成外链播放器
将拿到的代码直接放入博文中即可,如下
1 | <iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width=330 height=86 src="//music.163.com/outchain/player?type=2&id=28815250&auto=0&height=66"> |
这种方式简单快捷,但是iframe在iOS设备上效果不好,而且平台也会限制版权,有些版权存在争议的音频是不提供外链播放的,如果遇到的话,建议把对应的音频下载后上传到个人歌单,重新生成外链。
详细使用请参考插件文档,地址 https://github.com/MoePlayer/hexo-tag-aplayer/blob/master/docs/README-zh_cn.md
1 | npm install |
方法一受限于音乐平台版权限制,方法二必须要直接调用音乐的播放 url,而一般从音乐平台的页面上我们无法获取音频地址,所以方法三我们借助插件 APlayer-Typecho 来解析各大音乐平台的音频的地址
进入theme/主题/source目录下,新建文件夹dist
访问开源框架 APlayer,地址 https://github.com/MoePlayer/APlayer,下载源码将APlayer-master/dist目录下APlayer.min.css和APlayer.min.js文件拷贝到第一步新建的dist目录下
访问开源框架 APlayer-Typecho,地址 https://github.com/MoePlayer/APlayer-Typecho,下载源码,将APlayer-Typecho-master/assets目录下Meting.min.js文件拷贝到第一步的目录下
此时文件准备已完成,在博文中相应位置进行调用
1 | <link rel="stylesheet" href="/dist/APlayer.min.css"> |
其中div样式中的参数为需要展示的音频的参数,说明如下:
class:播放器样式,指定固定值aplayer
data-id:各平台对应的歌曲id值
data-server:平台标识
netease:网易云tencent:QQxiami:虾米kugou:酷狗baidu:百度data-type:音乐类型song:单曲album:专辑playlist:歌单search:搜索更多参数说明请参考 APlayer 和 APlayer-Typecho 文档
当然,如果你不想每次重新引入js,你也可以找到主题中博文开始和结束的地方,修改博客源文件,将方法的引入放在博客框架中完成。
本文由 简悦 SimpRead 转码, 原文地址 easyhexo.com
轻松入门 Hexo
hexo-tag-dplayer (opens new window) 是 APlayer (opens new window) 播放器的 Hexo 标签插件,可以十分方便地在文章内插入视频播放器。
安装 hexo-tag-dplayer 插件十分简单,只需要在博客目录执行
配置项需要一些 Yaml 语法的基础知识,可以参见 YAML 语法简介
修改 Hexo 的配置文件 _config.yml (似乎不用)
使用 hexo-tag-dplayer 非常简单,只需要在 MarkDown 文件中插入正确的标记就可以了。
如果还需要其他配置,尽管在上面写就好,详情可以看 [这里] (https://github.com/MoePlayer/hexo-tag-dplayer),下面有一个简单的示例可以看一下:
附 Dplayer 一些简单的参数列表,注意, Dplayer 的参数仅作为参考,具体请以 hexo-tag-dplayer (opens new window) 为准
| 名称 | 默认值 | 描述 |
|---|---|---|
| container | document.querySelector('.dplayer') | 播放器容器元素 |
| live | false | 开启直播模式,详情(opens new window) |
| autoplay | false | 视频自动播放 |
| theme | '#b7daff' | 主题色 |
| loop | false | 视频循环播放 |
| lang | navigator.language.toLowerCase() | 可选值: 'en', 'zh-cn', 'zh-tw' |
| screenshot | false | 开启截图,如果开启,视频和视频封面需要开启跨域 |
| hotkey | true | 开启热键 |
| preload | 'auto' | 预加载,可选值: 'none', 'metadata', 'auto' |
| volume | 0.7 | 默认音量,请注意播放器会记忆用户设置,用户手动设置音量后默认音量即失效 |
| logo | - | 在左上角展示一个 logo,你可以通过 CSS 调整它的大小和位置 |
| apiBackend | - | 自定义获取和发送弹幕行为,详情(opens new window) |
| video | - | 视频信息 |
| video.quality | - | 详情(opens new window) |
| video.defaultQuality | - | 详情(opens new window) |
| video.url | - | 视频链接 |
| video.pic | - | 视频封面 |
| video.thumbnails | - | 视频缩略图,可以使用 DPlayer-thumbnails(opens new window) 生成 |
| video.type | 'auto' | 可选值: 'auto', 'hls', 'flv', 'dash', 'webtorrent', 'normal' 或其他自定义类型,详情(opens new window) |
| video.customType | - | 自定义类型,详情(opens new window) |
| subtitle | - | 外挂字幕 |
| subtitle.url | required | 字幕链接 |
| subtitle.type | 'webvtt' | 字幕类型,可选值: 'webvtt', 'ass',目前只支持 webvtt |
| subtitle.fontSize | '20px' | 字幕字号 |
| subtitle.bottom | '40px' | 字幕距离播放器底部的距离,取值形如: '10px' '10%' |
| subtitle.color | '#fff' | 字幕颜色 |
| danmaku | - | 显示弹幕 |
| danmaku.id | required | 弹幕池 id,必须唯一 |
| danmaku.api | required | 详情(opens new window) |
| danmaku.token | - | 弹幕后端验证 token |
| danmaku.maximum | - | 弹幕最大数量 |
| danmaku.addition | - | 额外外挂弹幕,详情(opens new window) |
| danmaku.user | 'DIYgod' | 弹幕用户名 |
| danmaku.bottom | - | 弹幕距离播放器底部的距离,防止遮挡字幕,取值形如: '10px' '10%' |
| danmaku.unlimited | false | 海量弹幕模式,即使重叠也展示全部弹幕,请注意播放器会记忆用户设置,用户手动设置后即失效 |
| contextmenu | [] | 自定义右键菜单 |
| highlight | [] | 自定义进度条提示点 |
| mutex | true | 互斥,阻止多个播放器同时播放,当前播放器播放时暂停其他播放器 |
上面的示例中已经写了怎么使用弹幕了,使用弹幕首先需要有一个 ID ,建议使用视频的哈希值作为 ID,这样可以尽可能保证 ID 唯一,防止重复,接下来要配置弹幕接口,官方免费的弹幕接口能用,但是不稳定,如果有特殊需求,推荐个人自己搭建弹幕服务器。
解析 BiliBiLi 弹幕,这个上面的示例也已经有了,同样,免费的服务不一定稳定,有特殊需求的请自己搭建弹幕服务器。
增加外部弹幕列表,同解析 BiliBiLi 弹幕一样,只要将外部弹幕的地址写进 addition 就可以了。
增加参数 "subtitle=字幕文件地址" 就可以了,如需修改字幕颜色或者字体大小,仿照其他参数写就可以了。