使用vue互联QQ音乐完成网站音乐播放器

news2025/7/16 10:32:46

在这里插入图片描述


🎶 文章简介:使用vue互联QQ音乐完成网站音乐播放器
💡 创作目的:记录使用APlayer播放器+MetingJs实现 在线播放qq音乐、网易云音…等平台的音乐
☀️ 今日天气:2022-11-19 小雨多云 天空灰蒙蒙的 🥲
📝 每日一言:要一个黄昏,满是风,和正在下落的夕阳!


不需要观看基础部分内容同学可直接去跳转至第二部分。

文章目录

  • 🥐 1、新建一个Vue项目
    • 🧀 1-1、使用npm安装Vue脚手架
    • 🍞 1-2、使用vue脚手架初始化Vue项目
  • 🥖 2、APlayer 和 MetingJS 的简单介绍
    • 🥨 2-1、APlayer开源音乐播放器
    • 🥚 2-2、MetingJS插件
  • 🍳 3、将上述开源插件整合至Vue项目中
    • 🧈 3-1、引入上述差距对应js文件
    • 🥞 3-2、在App.vue内使用Meting.js
    • 🧇 3-3、启动项目!
      • 🥓 3-3-1、在控制台输入命令启动vue项目
      • 🥩 3-3-2、通过package.js启动项目
  • 🍗 4、音乐播放器歌曲播放源切换
    • 🍖 4-1、QQ音乐歌单播放
      • 🌭 4-1-1、获取QQ音乐歌单id
      • 🍔 4-1-2、替换App.vue中的id
    • 🍟 4-2、网易云音乐歌单播放
  • 🍕 5、既然都看到这里了,和不留下三连再离开呢🥴🥴

🥐 1、新建一个Vue项目

本文默认大家已经安装nodejs

🧀 1-1、使用npm安装Vue脚手架

我们打开控制台 / Cmd,执行 npm install -g @vue/cli 命令进行脚手架的全局安装。
若安装过程中出现Error可尝试使用cnpm进行安装。

在这里插入图片描述

🍞 1-2、使用vue脚手架初始化Vue项目

我们打开控制台 / Cmd,执行 vue create [项目名称] 命令进行vue项目的初始化。
这里大家可以根据自身情况来进行选择使用那个版本的vue(上下键进行选项的切换,空格确认)

在这里插入图片描述

我这里选择自定义配置(后面浅蓝色字体为选择项,大家可进行参考)

在这里插入图片描述

项目创建成功!

在这里插入图片描述

🥖 2、APlayer 和 MetingJS 的简单介绍

🥨 2-1、APlayer开源音乐播放器

Aplayer是一个功能强大的HTML5音乐播放器,

开源地址:https://github.com/DIYgod/APlayer
在线文档:https://aplayer.js.org/#/zh-Hans/

在这里插入图片描述

🥚 2-2、MetingJS插件

Metingjs基于Aplayer插件封装好的插件,开箱即用。

开源地址:https://github.com/metowolf/MetingJS

在这里插入图片描述

MetingJS所支持Aplayer版本

VersionAPI StatusAPlayer
1.2.xSupported^1.10.0
2.0.xLatest^1.10.0

MetingJs参数详情

参数选项默认值详细描述信息
id(编号)require歌曲ID /播放列表ID /专辑ID /搜索关键字
server(平台)require音乐平台:netease,tencent,kugou,xiami,baidu
type(类型)requiresong,playlist,album,search,artist
auto(支持类种 类)options音乐链接,支持:netease,tencent,xiami
fixed(固定模式)false启用固定模式,默认false
mini(迷你模式)false启用迷你模式,默认false
autoplay(自动播放)false音频自动播放,默认false
theme(主题颜色)#2980b9默认#2980b9
loop(循环)all播放器循环播放,值:“all”,one”,“none”
order(顺序)list播放器播放顺序,值:“list”,“random”
preload(加载)auto值:“none”,“metadata”,“'auto”
volume(声量)0.7默认音量,请注意播放器会记住用户设置,用户自己设置音量后默认音量将不起作用
mutex(限制)true防止同时播放多个玩家,在该玩家开始播放时暂停其他玩家
lrc-type(歌词)0歌词显示
list-folded(列表折叠)false指示列表是否应该首先折叠
list-max-height(最大高度)340px列出最大高度
storage-name(储存名称)metingjs存储播放器设置的localStorage键

🍳 3、将上述开源插件整合至Vue项目中

🧈 3-1、引入上述差距对应js文件

我们使用编辑器打开新创建的Vue项目,进入至public目录下的index.html,引入上述插件相对应的js文件。
(那么大家可能会发问了,这两款插件在npm仓库中存在,为什么不使用npm进行拉取,而使用在线js? 当然都是可以的,只不过使用js会更加简单一些)

    <!--  APlayer -->
    <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>
    <!-- MetingJS -->
    <script src="https://cdn.jsdelivr.net/npm/meting@2/dist/Meting.min.js"></script>

在这里插入图片描述
在这里插入图片描述

🥞 3-2、在App.vue内使用Meting.js

我们首先删除多余的内容,还App.vue一片清净。

在这里插入图片描述

然后我门在div内部添加如下代码

    <meting-js
        id="8692248848"
        server="tencent"
        type="playlist"
        fixed="true"
        autoplay="true"
        loop="all"
        order="random"
        preload="auto"
        list-folded="ture"
        list-max-height="500px"
        lrc-type="1">
    </meting-js>

在这里插入图片描述

🧇 3-3、启动项目!

你: 啊这就启动项目了?这就行了?真的假的?我好像什么都没干呀?🧐
我:没错,已经完成了,启动项目运行就可以了!啊,你不会不知道项目怎么启动吧?!?

🥓 3-3-1、在控制台输入命令启动vue项目

Terminal 中输入 npm run serve 命令即可启动项目
在这里插入图片描述

🥩 3-3-2、通过package.js启动项目

进入到Package.json文件内,点击第一个绿色的小箭头,然后选择 Run Serve 即可启动项目。

在这里插入图片描述

启动成功之后通过控制台生产的链接进行访问即可

在这里插入图片描述

然后我们就发现网站的左下角已经出现了音乐播放器,且可以正常播放音乐!!
那么问题来了,这些音乐是哪里来的,为什么会播放这些歌曲呢?🤯

在这里插入图片描述

🍗 4、音乐播放器歌曲播放源切换

不知道大家是否还记得在介绍MetingJs时的参数列表,没错正是通过参数列表进行歌曲配置的。下面所圈出来的三个参数为最重要的三个匹配参数

在这里插入图片描述

🍖 4-1、QQ音乐歌单播放

  1. 更换配置中server为tencent(QQ音乐)
  2. 更换配置中type为自己需要的类型 (song=>歌曲 playlist=>歌单 …)
  3. 更换配置中id为自己歌曲、歌单…的id

目前来看我门选择的就是QQ音乐源,我们也想去播放歌单的歌曲,那么我门可以只更换id,那么这个id是如何获取的呢?

在这里插入图片描述

🌭 4-1-1、获取QQ音乐歌单id

  1. 我们随便选择一个歌单。 (当然我们也可以新建自己的歌单)
  2. 选择分享按钮
  3. 复制分享链接
  4. 我们在浏览器中进行访问
  5. 我们会发现url中最后面的参数已经是一串数字了(这个呢就是我们所需要的id了)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

🍔 4-1-2、替换App.vue中的id

我们去替换App.vue中的id,然后重新启动项目,刷新页面,就会发现歌曲已经变为对应歌单中的歌曲了!

在这里插入图片描述

在这里插入图片描述

🍟 4-2、网易云音乐歌单播放

内容QQ音乐切换基本上一致,我们通过网页端打开之后也可以在url中找到id
我们只需要去修改一下id和serve
相信聪明的你一定可以可以举一反三,其他几个源则不再进行演示了。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

🍕 5、既然都看到这里了,和不留下三连再离开呢🥴🥴

要一个黄昏,满是风,和正在下落的夕阳!


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/17645.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

还在付费使用 XShell?我选择这款超牛逼的 SSH 客户端,完全免费

分享过FinallShell这款SSH客户端&#xff0c;也是xiaoz目前常用的SSH客户端工具&#xff0c;FinalShell使用起来方便顺手&#xff0c;但令我不爽的是tab数量变多的时候FinalShell越来越卡&#xff0c;而且内存占用也比较高。 最近发现一款使用使用C语言开发的跨平台SSH客户端W…

【无人机】基于Matlab的四旋翼无人机控制仿真

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

uni-app —— 下拉刷新 上拉加载

文章目录 前言一、下拉刷新 1.开启下拉刷新2.监听下拉刷新3.关闭下拉刷新二、上拉加载总结一、下拉刷新 1. 开启下拉刷新 在uni-app中有两种方式开启下拉刷新 需要在 ​​pages.json ​​​ 里&#xff0c;找到的当前页面的pages节点&#xff0c;并在​​style​​​ 选项中开…

这次把怎么做好一个PPT讲清-总体篇

文章目录一、背景二、图表化、图示化三、关键词设计四、版式层级五、逻辑关系图**1&#xff09;常用逻辑****2&#xff09;如何让逻辑关系图好看**六、对齐、分组和对比**对齐****分组****分组就是将同类得信息放在一起&#xff0c;靠的更近一点**那么&#xff0c;实现分组原则…

基于S32K144实现TPS929120的基本控制功能

文章目录前言1.TPS92910简介2.硬件调试平台2.1 灯板原理图2.2 参考电流2.3 器件地址3.TPS929120通信协议3.1 物理层3.2 数据链路层3.3 传输层2.3.1 读写时序2.3.2 帧格式说明2.3.3 寄存器lock与unlock2.3.4 输出通道控制4.使用S32K144驱动TPS929104.1 实现命令帧格式4.1.1 写寄…

【云原生】玩转Kubernetes实战(一):Pod、ConfigMap的使用

本文主要是利用Kubernetes 集群搭建出一个 WordPress 网站&#xff0c;用了三个镜像&#xff1a;WordPress、MariaDB、Nginx。 下面是其简单的架构图&#xff0c;用于直观的展示这个系统的内部逻辑关系&#xff1a; 简单来说&#xff0c;就是要通过本地地址http://127.0.0.1…

Spring AOP[详解]

一.需求引入 在开发过程中,总会有一些功能与业务逻辑代码耦合度不强(例如保存日志,提交事务,权限验证,异常处理),我们可以将这些代码提取到一个工具类中,需要使用时在调用工具类来实现. ​ 但是这样也会有弊端,那就是我们的代码已经开发完毕,后期如果需要增加公共功能就需要更…

Pinpoint--基础--03--安装部署

Pinpoint–基础–03–安装部署 前提 使用hd用户登陆 完成基础环境搭建https://blog.csdn.net/zhou920786312/article/details/118212302代码位置 https://gitee.com/DanShenGuiZu/learnDemo/tree/master/pinpoint-learn/demo11、安装环境准备 1.1、jdk1.8 基础环境搭建 包含…

一文搞懂MySQL表字段类型长度的含义

不知道大家第一眼看标题的时候有没有理解&#xff0c;什么是“字段类型长度”&#xff0c;这里我来解释下&#xff0c;就比如我们在MySQL建表的时候&#xff0c;比如下面这个建表语句&#xff1a; CREATE TABLE user (id int(10) DEFAULT NULL,name varchar(50) DEFAULT NULL,…

linux系统离线安装docker(分步法一键法)

1 前言 在有的项目场景中&#xff0c;服务器是不允许连接外网的。此时若想在服务器上安装部署docker容器&#xff0c;就不能采用在线方式了&#xff0c;不过可以采取离线方式进行安装。下面我们就一起看看离线安装的两种办法。 一种是分步安装法&#xff0c;一种是一键安装法…

Python冷知识:如何找出新版本增加或删除了哪些标准库?

“内置电池”是 Python 最为显著的特性之一&#xff0c;它提供了 200 多个开箱即用的标准库。但是&#xff0c;历经了 30 多年的发展&#xff0c;很多标准库已经成为了不得不舍弃的历史包袱&#xff0c;因为它们正在“漏电”&#xff01; 好消息是&#xff0c;Python 正在进行…

Pinpoint--基础--02--架构设计

Pinpoint–基础–02–架构设计 1、整体架构 1.1、Pinpoint Collector 数据收集模块&#xff0c;接收Agent发送过来的监控数据&#xff0c;并存储到HBase部署在 Web 容器上 1.2、Pinpoint Web 监控展示模块&#xff0c;展示系统调用关系、调用详情、应用状态等&#xff0c;并…

CleanMyMac磁盘空间内存瘦身清理软件使用教程

许多用着Mac系统电脑的朋友们总是卸载不干净电脑垃圾软件&#xff0c;想要把垃圾软件卸载干净&#xff0c;可以尝试使用苹果电脑清理软件CleanMyMac。 经典的电脑深度清理软件——CleanMyMac。由于苹果电脑硬盘售价高昂&#xff0c;且不可以自行安装内存&#xff0c;很多苹果用…

代码随想录day60|结束亦是开始|84.柱状图中最大的矩形|总结

代码随想录day60 来了老弟 84.柱状图中最大的矩形 思路 本题和42. 接雨水是遥相呼应的两道题目&#xff0c;建议都要仔细做一做&#xff0c;原理上有很多相同的地方&#xff0c;但细节上又有差异&#xff0c;更可以加深对单调栈的理解&#xff01;42. 接雨水 其实这两道题目先…

java 分布式游戏服务器框架,集群游戏服务器框架,游戏服务器网关框架 ioGame 网络游戏服务器框架

网络游戏框架简介 ioGame 是一个由 java 语言编写的网络游戏服务器框架。支持 websocket、tcp &#xff0c;适用于全球同服、回合制游戏、策略游戏、即时战斗等游戏服务器的开发。具有高性能、稳定、易用易扩展、超好编程体验等特点。可做为 H5、手游、端游的 java 游戏服务器…

Intel关NUMA的内存编址

最近在做某国产化平台相关的适配, 不管NUMA的性能和实现方式都和Intel有较大不同, 作为比较对象, 理解Intel的NUMA实现是很有必要的. 虽然从软件角度, 打开NUMA会带来额外的复杂度, 但是从硬件角度, 关闭NUMA其实更复杂, 本文尝试分析关闭NUMA时Intel平台的内存编址. Memory I…

java+springboot基于性别网上学习特征问卷调查及可视化系统

基于JSP技术、SSM框架、B/S机构、Mysql数据库设计并实现了性别网上学习特征及可视化。系统主要包括个人中心、用户管理、调查问卷管理、用户答卷管理、专家建议管理、学习攻略管理、我的收藏管理、爬虫管理、系统管理等功能模块。 (1)绪论 网站的开发背景&#xff0c;意义和系…

栈和队列(带图,有手就废)

文章目录1.栈1.1栈的概念与结构1.2栈的声明1.3动态栈的实现1.3.1初始化栈1.3.2入栈1.3.3出栈1.3.4获取栈顶元素1.3.5获取栈中元素个数1.3.6判断栈是否为空1.3.7销毁栈1.4栈的总结2.队列2.1队列的概念与结构2.2队列的声明2.3队列的实现2.3.1初始化队列2.3.2入队2.3.3出队2.3.4获…

BUUCTF web之WarmUp 源代码详解

目录 前言 PHP代码分析 关于../ 前言 访问除了一张滑稽图&#xff0c;就没其他的了 查看源码&#xff0c;有一个注释了的 source.php&#xff0c;可以尝试直接访问一下。同时进行目录扫描 访问source.php&#xff0c;里面包含php代码&#xff0c;题目说了是php代码审计&…

知识经验分享——YOLOv5-6.0训练出错及解决方法(RuntimeError)

>>>深度学习Tricks&#xff0c;第一时间送达<<< 目录 一、问题bug 二、解决方法 步骤1&#xff1a;打开utils/loss.py文件 步骤2&#xff1a;找到 for i in range(self.nl) 函数&#xff08;CtrlF&#xff09;&#xff0c;作以下替换&#xff1a; 步骤3…