Muplayer——轻量级在线JavaScript 音乐播放器

article/2025/7/19 6:21:04

简单的 JavaScript 音乐播放器

GitHub 地址:https://github.com/Wcowin/Muplayer
在线地址:https://wcowin.work/Muplayer/

本项目是一个基于原生 JavaScript、HTML 和 CSS 实现的响应式音乐播放器,支持本地音乐添加、播放列表管理、搜索、顺序/随机/单曲循环播放等功能。
适合初学者学习 Web 前端开发、音频 API 应用和响应式布局设计。

功能特性

  • 🎵 本地音乐添加:支持从本地选择多首音频文件,自动加入播放列表。
  • 🔍 智能搜索:可在播放列表、本地预置库和在线音乐库中搜索歌曲,支持中英文模糊匹配。
  • 📃 播放列表管理:支持点击播放列表任意歌曲,实时高亮当前播放曲目,可一键清空列表。
  • ⏯️ 播放控制:支持播放、暂停、上一首、下一首、进度拖动、音量调节。
  • 🔁 播放模式:顺序播放、随机播放、单曲循环一键切换。
  • 📱💻 响应式布局:适配 PC、平板、手机等多终端,支持暗黑模式。
  • 🌐 在线搜索:支持 Jamendo 等在线音乐 API 搜索试听(如遇网络或 CORS 限制自动降级为本地推荐)。
  • 🖼️ 专辑封面:自动显示歌曲封面,未设置时使用默认图片。

使用方法

  1. 克隆或下载本项目到本地,直接用浏览器打开 index.html 即可使用。
  2. 点击“从本地添加音乐”按钮,选择你喜欢的音频文件。
  3. 在顶部搜索框输入歌曲名或歌手名,可检索当前播放列表、本地预置曲库及在线音乐。
  4. 点击播放列表任意歌曲即可切换播放。
  5. 通过底部按钮切换播放模式,调整音量和进度。

主要技术点

  • 原生 JavaScript 操作 DOM 和 Audio API
  • 音乐播放进度与时间格式化
  • 多模式播放逻辑(顺序/随机/循环)
  • 响应式 CSS 布局与暗黑模式适配
  • 本地文件读取与 URL.createObjectURL
  • 在线音乐 API 搜索与降级处理

目录结构

├── index.html
├── style.css
├── main.js
└── README.md

效果预览

image

扩展建议

  • 支持歌词显示与同步
  • 支持播放历史与收藏
  • 支持自定义主题色
  • 支持更多在线音乐平台

致谢

  • Free Music Archive
  • Jamendo API
  • FontAwesome 图标库

本项目仅用于学习与交流,音乐版权归原作者所有。如有建议欢迎 issue 或 PR!


http://www.hkcw.cn/article/wcZyNOHFaM.shtml

相关文章

毫秒断电,安全守护|维安WPB系列主动型熔断器重磅登场!

1 主动型熔断器 新能源时代的“主动保护”趋势 随着新能源汽车行业的高速发展,其相关安全事故也层出不穷。为此,工信部于2025 年3月 28 日组织制定了强制性国家标准《电动汽车用动力蓄电池安全要求》(GB38031-2025)&#xff0c…

Java—— 多线程 第二期

等待唤醒机制(生产者和消费者) 说明 之前的多线程是谁抢到CPU的执行权谁执行,而等待唤醒机制作为一种经典的多线程协作模式,可以实现线程的交替执行。 成员 实现等待唤醒机制需要三个成员:生产者、消费者、标志位 可以分别看作厨师、吃货、…

2025年最新《Python程序设计》题库(含答案)

判断题填空题选择题程序题 点击文末名片可以下载python工具和完整题库! 第 1 章 基础知识 (部分展示) 1、 Python 是一种跨平台、开源、免费的高级动态编程语言。 2、 Python 3.x 完全兼容 Python 2.x。 3、 Python 3.x 和 Python 2.x 唯…

【AI非常道】二零二五年五月,AI非常道

经常在社区看到一些非常有启发或者有收获的话语,但是,往往看过就成为过眼云烟,有时再想去找又找不到。索性,今年开始,看到好的言语,就记录下来,一月一发布,亦供大家参考。 前面的记…

Linux入门(十一)进程管理

Linux 中每个执行的程序都称为一个进程,每个进程都分配一个ID号(PID) 每个进程都可能以两种方式存在,前台(屏幕上可以操作的)和后台(屏幕上无法看到的),一般系统的服务都…

晨控CK-UR12与西门子PLC配置Modbus TCP通讯连接操作手册

晨控CK-UR12与西门子PLC配置Modbus TCP通讯连接操作手册 晨控CK-UR12系列作为晨控智能工业级别RFID读写器,支持大部分工业协议如RS232、RS485、以太网。支持工业协议Modbus RTU、Modbus TCP、Profinet、EtherNet/lP、EtherCat以及自由协议TCP/IP等。 本期主题:围绕…

Python使用

Python学习,从安装,到简单应用 前言 Python作为胶水语言在web开发,数据分析,网络爬虫等方向有着广泛的应用 一、Python入门 相关基础语法直接使用相关测试代码 Python编译器版本使用3以后,安装参考其他教程&#xf…

高德地图应用OceanBase单元化构建下一代在线地图服务

IEEE International Conference on Data Engineering (ICDE) 是数据库和数据工程领域的顶级学术会议之一(与SIGMOD、VLDB并成为数据库三大顶会),自1984年首次举办以来,每年举办一次。ICDE涵盖广泛的主题,包括数据库系统…

软考-系统架构设计师-第十九章 嵌入式系统架构设计理论与实践

嵌入式系统架构设计理论与实践 19.1 嵌入式系统发展历程19.2 嵌入式系统硬件19.3 嵌入式系统软件19.4 嵌入式系统软件架构设计方法19.5 嵌入式系统软件架构实践 19.1 嵌入式系统发展历程 发展历程硬件软件主要特点单片微型计算机(SCM)单片机无操作系统 …

DeepSeek-R1 重磅升级,智能体验再进化!

DeepSeek AI 爱好者们注意啦!DeepSeek R1 模型完成小版本升级,新版本 DeepSeek-R1-0528 震撼登场。想体验超强思考与推理能力?官方网站、APP、小程序,一键开启 “深度思考” 功能,新版等你来探索!API 也同步…

预处理深入详解:预定义符号、宏、命名约定、命令行定义、条件编译、头文件的包含

目录 一、预定义符号 二、#define定义常量 三、宏 (一)#define定义宏 (二)带有副作用的宏参数 (三)宏替换的规则 (四)宏和函数的对比 四、#和## (一&#xff09…

深度解析:跨学科论文 +“概念迁移表” 模板写作全流程

跨学科论文速通!融合“概念迁移表”的写作导航模板 你的论文是否曾被导师皱眉评价为“四不像”?不同学科的术语在稿纸上打架,核心逻辑若隐若现? 别让心血沦为学术混搭的牺牲品。一张精心设计的 概念迁移表,能将两个看…

Linux安装及管理程序

1 Linux应用程序基础 1.1 Linux 命令与应用程序的关系 在 Linux 操作系统中,一直以来命令和应用程序并没有特别明确的区别,从长期使用习惯来看,可以通过以下描述来对两者进行区别: 应用程序命令的执行文件大多比较小&#xff0…

历年南京大学计算机保研上机真题

2025南京大学计算机保研上机真题 2024南京大学计算机保研上机真题 2023南京大学计算机保研上机真题 在线测评链接:https://pgcode.cn/school Count Number of Binary Strings 题目描述 Given a positive integer n n n ( 3 ≤ n ≤ 90 3 \leq n \leq 90 3≤n≤…

酒店管理系统设计与实现

本科毕业设计(论文) 设计(论文)题目 酒店管理系统设计与实现 学生姓名 学生学号 所在学院 专业班级 校内指导教师 李建 企业指导教师 毕业设计(论文)真实性承诺及声明 学生对毕业设计(论文)真实性承诺 本人郑重声明:所提交的毕业设计(论文)作品是本人在指导教师的指…

Java web学习路径预览

Java web学习路径预览 (图源:黑马程序员) 目录 Java web学习路径预览 一、HTML、CSS、JS 1. HTML (HyperText Markup Language): 网页的骨架 2. CSS (Cascading Style Sheets): 网页的皮肤 3. JavaScript (JS): 网页的行为 二、Ajax、…

QEMU/KVM课程大纲暨学习路线(1)

一、背景 去年(2024年)10月份,在CSDN上有一位网友联系到我,说有需要我帮忙的地方。加了微信之后,他说了要帮助的事情。原来是他看到了我的QEMU/KVM相关文章,阅读之后觉得符合他们的要求,所以想让我帮他们开发QEMU/KVM相关的课程。 经过沟通和了解,他们之前请了一位老师…

得物前端面试题及参考答案(精选50道题)

浏览器强制缓存和协商缓存的机制及区别 浏览器缓存机制用于减少网络请求、提升页面加载性能,强制缓存和协商缓存是其中两种核心策略。 强制缓存的机制:当浏览器请求资源时,首先检查该资源在本地缓存中的有效期。有效期由响应头中的Cache-Con…

动态IP与区块链:重构网络信任的底层革命

在数字经济蓬勃发展的今天,网络安全与数据隐私正面临前所未有的挑战。动态IP技术与区块链的深度融合,正在构建一个去中心化、高可信的网络基础设施,为Web3.0时代的到来奠定基础。 一、技术碰撞:动态IP与区块链的天然契合 动态I…

PCB设计实践(三十)地平面完整性

在高速数字电路和混合信号系统设计中,地平面完整性是决定PCB性能的核心要素之一。本文将从电磁场理论、信号完整性、电源分配系统等多个维度深入剖析地平面设计的关键要点,并提出系统性解决方案。 一、地平面完整性的电磁理论基础 电流回流路径分析 在PC…