当前位置: 首页 > news >正文

在Vue项目的引入meting-js音乐播放器插件

开源项目:https://github.com/swzaaaaaaa/NBlog

1、开源项目中音乐播放插件的使用流程

步骤1:下载meting-js相关文件

在MetingJS官方仓库或其他可靠的CDN获取meting-js的JavaScript文件以及相关依赖(如APlayer的文件)。将它们下载到项目的public文件夹下,并放在public/js文件夹中。
image.png

步骤2:在index.html中引入文件

public/index.html文件中,通过<script>标签引入meting-js及其依赖。在<head>标签内添加以下内容:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width,initial-scale=1.0">
	<link rel="icon" href="<%= BASE_URL %>favicon.ico">
	<title>NBlog</title>
    <link rel="stylesheet" href="<%= BASE_URL %>lib/css/prism.css">
	<link rel="stylesheet" href="https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/aplayer/1.10.1/APlayer.min.css">
</head>
<body>
	<noscript>
		<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
	</noscript>
	<div id="app"></div>
        <script src="<%= BASE_URL %>lib/js/prism.js" data-manual></script>
	<script src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/aplayer/1.10.1/APlayer.min.js"></script>
    <!-- <script> 这个是自己搭建的api,为了防止官方api有问题导致,这里是原作者搭建的,但是有时也有问题,所以我就注释了。(如果需要,后续自己再尝试搭建)
		var meting_api='https://api.naccl.top/meting/api?server=:server&type=:type&id=:id&auth=:auth&r=:r';
    </script> -->
	<script src="<%= BASE_URL %>lib/js/Meting.min.js"></script>
	<script src="https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/tocbot/4.6.0/tocbot.min.js"></script>
</body>
</html>


image.png

步骤3:在index.vue组件中使用

在需要使用音乐播放器的Vue组件中,可以直接在模板中使用<meting-js>标签,就像之前全局引入的方式一样。
image.png

通过这种方式,meting-js被引入到整个项目中,并且可以在多个Vue组件中使用。不过需要注意的是,这种方式下meting-js及其依赖的文件会在页面加载时就被全部加载,可能会影响页面的初始加载性能。如果项目对性能要求较高,可以考虑对这些文件进行优化,如压缩、按需加载等。

2、meting-js插件的使用

在使用 <meting-js> 标签时,可以通过设置一系列参数来定制音乐播放器的功能和外观。以下是一些常用参数及其说明:

音乐源相关参数

参数名描述示例值
server指定音乐平台。netease(网易云音乐)、tencent(腾讯音乐)、kugou(酷狗音乐)、xiami(虾米音乐)、baidu(百度音乐)
type指定音乐类型。song(单曲)、album(专辑)、playlist(歌单)、artist(歌手)、search(搜索结果)
id音乐资源的唯一标识符,根据 servertype 不同而不同。例如网易云音乐某个歌单的 ID:60198

播放器样式与布局参数

参数名描述示例值
fixed是否开启固定模式,播放器固定在页面底部。truefalse
mini是否开启迷你模式。truefalse
list-folded列表是否折叠。truefalse
list-max-height列表的最大高度。340px

播放控制参数

参数名描述示例值
autoplay是否自动播放。truefalse
loop循环模式。all(全部循环)、one(单曲循环)、none(不循环)
order播放顺序。list(列表顺序)、random(随机播放)
preload预加载策略。auto(自动)、metadata(仅元数据)、none(不预加载)
volume初始音量,范围为 0 到 1。0.7
mutex是否互斥播放,即同一时间只允许一个播放器播放。truefalse

歌词相关参数

参数名描述示例值
lrc-type歌词显示类型。0(不显示歌词)、1(使用 lrc 属性提供的歌词)、2(从音乐源获取歌词)、3(优先从 lrc 属性获取,若没有则从音乐源获取)
lrc自定义歌词内容,当 lrc-type 为 1 或 3 时有效。[00:00.00] 这是歌词

示例代码

以下是一个使用多个参数的 <meting-js> 标签示例,展示了如何在 HTML 中配置一个网易云音乐歌单的播放器:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <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>
  <script src="https://cdn.jsdelivr.net/npm/meting@2/dist/Meting.min.js"></script>
  <title>音乐播放器示例</title>
</head>

<body>
  <meting-js
    server="netease"
    type="playlist"
    id="60198"
    fixed="true"
    autoplay="false"
    loop="all"
    order="list"
    preload="auto"
    volume="0.7"
    mutex="true"
    list-folded="false"
    list-max-height="340px"
    lrc-type="3"
  ></meting-js>
</body>

</html>

在这个示例中,播放器将播放网易云音乐的指定歌单,采用固定模式,初始音量为 0.7,循环模式为全部循环等。你可以根据自己的需求调整这些参数。

3、api无法访问导致的错误(Naccl自己搭建的)

https://github.com/Naccl/NBlog/issues/97

image.png


文章转载自:

http://jA1Feu96.Lpyjq.cn
http://7V6Af7zV.Lpyjq.cn
http://vwe7vPsi.Lpyjq.cn
http://Tk1g20dl.Lpyjq.cn
http://WJqNbdWr.Lpyjq.cn
http://BCMLg7Y5.Lpyjq.cn
http://SmHT6gM0.Lpyjq.cn
http://myrBR9vZ.Lpyjq.cn
http://2MuYNk2f.Lpyjq.cn
http://T5mySdXS.Lpyjq.cn
http://FQmwqKnC.Lpyjq.cn
http://zCOvdPUZ.Lpyjq.cn
http://MzRwSJLI.Lpyjq.cn
http://XsWkZXoz.Lpyjq.cn
http://TAuNGjip.Lpyjq.cn
http://LEHSVSvy.Lpyjq.cn
http://ipxRrDVx.Lpyjq.cn
http://FkCiBt2A.Lpyjq.cn
http://lUUrZzqI.Lpyjq.cn
http://8F9k56Hz.Lpyjq.cn
http://M0riavUQ.Lpyjq.cn
http://9lqnd37p.Lpyjq.cn
http://PZcruXAM.Lpyjq.cn
http://URwaAaNS.Lpyjq.cn
http://vxcLuuBm.Lpyjq.cn
http://RVSeIrBy.Lpyjq.cn
http://NqQS7Cyj.Lpyjq.cn
http://dingYA1E.Lpyjq.cn
http://HxhgpQzP.Lpyjq.cn
http://F1QcczqN.Lpyjq.cn
http://www.dtcms.com/a/127798.html

相关文章:

  • K8s 集群网络疑难杂症:解决 CNI 网络接口宕机告警的完整指南
  • 09-设计模式 企业场景 面试题-mk
  • 小刚说C语言刷题——第22讲 二维数组
  • JS【详解】迭代器 Iterator(含可迭代对象、同步迭代器、异步迭代器等)
  • @PKU秋招互联网产品经理求职分享
  • 永磁同步电机控制算法--基于有功功率扰动的频率补偿IF控制
  • 网络1 网络设备
  • opencv-python(图像基础)
  • 解析医疗器械三大文档:DHF、DMR与DHR
  • 蓝桥杯之门牌
  • SQL问题分析与诊断(8)——分析方法1
  • Sentinel核心算法解析の漏桶算法
  • Docker的镜像构建
  • Stable Diffusion +双Contronet:从 ControlNet 边缘图到双条件融合:实现服装图像生成的技术演进——项目学习记录
  • Profibus DP主站转ModbusTCP网关通讯秘籍
  • Windows 10 操作系统电源选项没有高性能模式怎么办?
  • 【c语言】指针习题
  • 征程 6 VIO Frame 时间戳介绍
  • 【随手笔记】QT避坑一(串口readyRead信号不产生)
  • 测试第二课-------测试分类
  • 安宝特案例 | 某户外机房制造企业应用AR+作业流,规范制造过程,记录施工节点,保障交付质量
  • AI Agent工程师认证-学习笔记(3)——【多Agent】MetaGPT
  • 2025蓝桥杯省赛C++B组解题思路
  • 月之暗面视觉模型(Kimi-VL)论文速读
  • OBS SDK 中 ffmpeg_muxer 与 ffmpeg_output 的区别与使用 QSV 编码器的正确方式
  • 《前端面试题之 CSS篇(第一集)》
  • 一周学会Pandas2 Python数据处理与分析-Pandas2数据导出
  • data_analysis13
  • 神经网络背后的数学原理
  • 探索 Python 的 functools 模块:缓存、属性缓存与 LRU 缓存