博客添加Aplayer音乐播放器

简介: 本文介绍了如何在博客网站中添加一个美观且功能强大的音乐播放器APlayer.js,从基本设置到高级定制,包括单曲播放、播放列表以及第三方歌单的集成方法。通过简单的HTML和JavaScript代码,即可实现个性化的音乐播放体验,让访客在浏览文章的同时享受美妙的音乐。

前言

是否有一首音乐,在许多年后再次听到时,会让你思绪拉回到昔日的过往情景。音乐就像老胶卷,每个旋律,每句歌词,都承载着每个人的往事回忆和情愫感受。

有时候情绪到了,有那么一些音乐,我们听众会被音乐带动情绪,或低落或洋溢,在这些复杂的情感交织当中,往昔的画面如潮水般涌来。许多年又过去了,当时陪伴在你身边的人还在吗,当时定下的决心还记得吗,当年的愿望实现了吗?

音乐就像是一把神奇的钥匙,开启了一扇扇通往过去的门。所以我想在我自己的博客网站中,将这开门的瞬间给记录下来。将那些或珍贵或伤痛或美好的记忆碎片一一拾起,拼凑成一幅属于自己的人生画卷,让自己在岁月的长河中得以一次次回溯,去重新审视那些走过的路、遇见过的人、经历过的事,在音乐的怀抱里,与曾经的自己深情相拥,感悟着时光的流转与生命的厚重。

在博客上的音乐播放器大多是那种 Mini 音乐播放器,只显示一个MP3的播放按钮,虽然很便捷,但我一直觉得不够正式,音乐列表看起来也不够直观,我希望的文章上能有一个看起来比较正式的播放器,在自己的文章中显示音乐播放器

这里我选择用Aplayer,这里我来介绍一下具体的实现过程

音乐插件

对比了几款音乐插件,我最终选定了 Aplayer.js,因其界面美观,功能强大。音乐播放器的音乐信息,歌词,进度条,音量,顺序模式,循环模式都支持。可以使用三方音乐外链,也可以使用自己的音乐链接。

当然,由于一些限制,打开以上链接为概率性事件...如果RP不足可以留言博主

实现代码

将 Aplayer 插件 APlayer.min.js 和 APlayer.min.css 上传到服务器,如果博客使用 WordPress 可上传到服务器网站能访问到的目录下,通过链接 https://IP/your_file/Aplayer.min.js ,就可以访问到

个人还是觉得东西都放在本地更有安全感但是也可以直接使用 jsdeliver CDN 方式,更快更方便,但不稳定,偶尔抽风...

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Music Player</title>
  //  如果使用本地的话可以将以下链接改成本地
    <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>
</head>
<body>
    <div id="aplayer"></div>
    <script>
        const ap = new APlayer({
            element: document.getElementById('aplayer'),
            music: [{
                title: '半岛铁盒',
                author: '周杰伦',
                url: 'https://echeverra.cn/wp-content/uploads/2022/05/周杰伦-半岛铁盒.mp3',
                pic: 'https://echeverra.cn/wp-content/uploads/2022/05/周杰伦-半岛铁盒-mp3-image.png'
            }]
        });
    </script>
</body>
</html>

效果如下

这个比初始的好点当时还是略显单调,我们还可以再改进一番让他改成类似与我QQ音乐的播放器一样单曲二行显示的感觉

经过更改后最终效果如下

放单曲的代码,这里加了一个空格控制播放的小优化

单曲代码

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Music Player</title>
    <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>
    <style>
      /* 当是一首歌的时候 加上这个 */
      .aplayer-list {
        display: block !important;
      }
    </style>
  </head>
  <body>
    <div id='aplayer'></div>
    <script>
      var ap = new APlayer({
        element: document.getElementById('aplayer'),
        showlrc: false,
        fixed: false,
        mini: false,
        preload: 'none',
        // 这个是放歌的 数组
        audio: {
          // 这个是放歌的,更改url即可自定义歌曲 
          title: '半岛铁盒',
          author: '周杰伦',
          url: 'https://echeverra.cn/wp-content/uploads/2022/05/周杰伦-半岛铁盒.mp3',
          pic: 'https://echeverra.cn/wp-content/uploads/2022/05/周杰伦-半岛铁盒-mp3-image.png'
        },
      });
      // 添加 按钮 按下的监听事件
      document.addEventListener('keydown', function(e) {
        // 播放/暂停
        if (e.code == 'Space') {
          e.preventDefault(); // 防止空格键引起的页面滚动
          if (ap.paused) {
            ap.play();
          } else {
            ap.pause();
          }
        }
      });
    </script>
  </body>
</html>

播放列表的代码

有时候我们需要播放一个列表,再数组里添加就行,新加了一个通过方向键<- -> 控制的逻辑

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Music Player</title>
    <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>
  </head>
  <body>
    <div id='aplayer'></div>
    <script>
      var ap = new APlayer({
        element: document.getElementById('aplayer'),
        showlrc: false,
        fixed: false,
        mini: false,
        preload: 'none',
        // 这个是放  歌的 数组[]  这个是数组 {} 这个是对象
        audio: [{
            // 这个是 放歌的 
            title: '半岛铁盒',
            author: '周杰伦',
            url: 'https://echeverra.cn/wp-content/uploads/2022/05/周杰伦-半岛铁盒.mp3',
            pic: 'https://echeverra.cn/wp-content/uploads/2022/05/周杰伦-半岛铁盒-mp3-image.png'
          },
          {
            // 这个是 放歌的 
            title: '爱在西元前',
            author: '周杰伦',
            url: 'https://echeverra.cn/wp-content/uploads/2022/05/周杰伦-半岛铁盒.mp3',
            pic: 'https://echeverra.cn/wp-content/uploads/2022/05/周杰伦-半岛铁盒-mp3-image.png'
          },
    
        ],
      });
      // 添加 按钮 按下的监听事件
      document.addEventListener('keydown', function(e) {
        // 上一首
        if (e.code == 'ArrowLeft') {
          ap.skipBack();
        }
        // 下一首
        else if (e.code == 'ArrowRight') {
          ap.skipForward();
        }
        // 播放/暂停
        else if (e.code == 'Space') {
          e.preventDefault(); // 防止空格键引起的页面滚动
          if (ap.paused) {
            ap.play();
          } else {
            ap.pause();
          }
        }
      });
    </script>
  </body>
</html>

效果如下

播放第三方歌单

Meting 主要参数说明:

参数

默认值

描述

id

require

歌曲 ID / 播放列表 ID / 专辑 ID / 搜索关键字

server

require

音乐平台: netease

, tencent

, kugou

, xiami

, baidu

type

require

类型:song

, playlist

, album

, search

, artist

auto

options

音乐链接,支持,支持: netease

, tencent

, xiami

实现代码如下

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <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.0.1/dist/Meting.min.js"></script>
    <!-- 这个id改一下就行了  这个是网易云的   qq音乐的 也是 改一下serve 就行了 还有  type 是用来选择单曲还是列表的 -->
    <meting-js server="netease" type="playlist" id="7360465359"></meting-js>
  </head>
  <body>
  </body>
</html>

效果如下

相关文章
|
JavaScript 前端开发 Web App开发
【网站开发必备】——12款响应式 Lightbox(灯箱)效果插件
  灯箱效果(Lightbox)是网站中最常用的效果之一,用于实现类似模态对话框的效果。网络上各种 Lightbox 插件琳琅满目,随着响应式设计(Respnsive Design)的发展,这一先进理念也被引入了 Lightbox 插件之中。
3146 1
|
存储 开发工具 Docker
Docker数据目录迁移解决方案
在docker的使用中随着下载镜像越来越多,构建镜像、运行容器越来越多, 数据目录必然会逐渐增大;当所有docker镜像、容器对磁盘的使用达到上限时,就需要对数据目录进行迁移。
14709 1
|
11月前
|
自然语言处理 安全 API
2025阿里云双11特惠:文本短信低至 0.02 元/条,短信认证套餐包3.99元/年
2025年阿里云双11金秋云创季开启!短信认证套餐包新人专享7折,免资质签名即用即发;短信服务新客低至0.02元/条,老客最高减5850元,验证短信秒级触达率99%。
1199 1
|
9月前
|
JSON API PHP
免费天气预报API接口详解
天气预报1-7天API接口,由中国气象局官方数据支持,提供全国范围内的精准天气预报。支持查询温度、天气状况、风力风向、湿度、气压等多维度信息,具备时段预报与天气预警功能。通过RESTful API调用,返回JSON格式数据,适用于出行、农业、智能家居等多种应用场景。
6029 4
|
9月前
|
网络协议 API 定位技术
全球IP归属地查询免费API详细指南
接口盒子提供免费全球IP归属地查询API,支持IPv4/IPv6,返回国家、省、市、运营商及经纬度等详细信息。多通道查询保障准确性,无每日调用上限,适用于网站分析、安全防护、内容本地化等场景。
2247 0
|
9月前
|
域名解析 运维 负载均衡
阿里云DNS云解析有必要购买吗?免费版和收费版域名解析有啥区别?
阿里云DNS免费版适合基础解析需求,付费版提供100% SLA保障、更小TTL(最低1秒)、更多解析线路及IP支持,具备攻击防御、DNSSEC等高级功能。个人版低至19.9元/年,企业版适合高可用场景,尊享版支持专家服务与无限解析记录,适用于对稳定性要求高的业务。
2684 2
|
数据可视化 Java Windows
Elasticsearch入门-环境安装ES和Kibana以及ES-Head可视化插件和浏览器插件es-client
本文介绍了如何在Windows环境下安装Elasticsearch(ES)、Elasticsearch Head可视化插件和Kibana,以及如何配置ES的跨域问题,确保Kibana能够连接到ES集群,并提供了安装过程中可能遇到的问题及其解决方案。
Elasticsearch入门-环境安装ES和Kibana以及ES-Head可视化插件和浏览器插件es-client
|
开发工具 git
NotionNext 笔记博客部署 图文教程①
如何使用NotionNext工具将Notion笔记实时渲染成静态博客网站,从创建Notion账号、复制模板、获取页面ID、复制源代码到Vercel部署的完整步骤。
NotionNext 笔记博客部署 图文教程①
|
监控 安全 应用服务中间件
网站出现“SSL handshake failed“?SSL握手失败(525)的错误修复指南
本文详细解析了Cloudflare中常见的SSL握手失败(525)错误,从问题定义到根源分析,再到具体解决方案,提供了一站式修复指南。通过检查证书域名匹配、有效性及时钟同步等问题,结合Nginx/Apache配置调整与Cloudflare设置优化,帮助用户彻底解决525错误。同时,文章还提供了预防措施,如自动续期和SSL状态监控,确保网站长期稳定运行。跟随步骤操作,可有效避免SSL相关故障,保障网站安全访问。
10546 0
网站出现“SSL handshake failed“?SSL握手失败(525)的错误修复指南
|
Ubuntu Linux Android开发
termux+anlinux+Rvnc viewer来使安卓手机(平板)变成linux服务器
本文介绍了如何在Android设备上安装Termux和AnLinux,并通过这些工具运行Ubuntu系统和桌面环境。
5516 3
termux+anlinux+Rvnc viewer来使安卓手机(平板)变成linux服务器

热门文章

最新文章