Skip to content

项目介绍

什么是 NeteaseMiniPlayer v2?

NeteaseMiniPlayer v2(简称 NMP v2)是一个基于 NeteaseCloudMusicApi 的轻量级 CDN 可插入式音乐播放器 UI 组件库。专为草根站长和新手开发者设计,提供比网易云官方嵌入式播放器更美观的现代化界面。

核心特性

🎯 简单易用

  • 方便调用:只需几行 HTML 代码即可集成
  • CDN 部署:无需下载,直接引用 CDN 链接
  • 零配置:开箱即用,支持自动主题检测

🎨 美观设计

  • 现代化 UI:比官方播放器更美观的界面设计
  • 多主题支持:支持浅色、深色和自动主题切换
  • 响应式布局:完美适配桌面端和移动端

⚡ 轻量级

  • 体积小巧:优化后的代码体积,快速加载
  • 性能优异:智能缓存和懒加载策略
  • 无框架依赖:纯原生 JavaScript 实现

项目背景

NeteaseMiniPlayer 项目分为两个版本:

  • NeteaseMiniPlayer:第一个版本,现已弃用归档
  • NeteaseMiniPlayer v2:当前主要版本,持续维护更新

目前测试开发项目:

  • NeteaseMiniPlayerPlus:属于NMP v2增强版,提供更多功能和定制选项,目前项目还在测试开发(与NMP v2并行更新项目)

NMP项目 基于 NeteaseCloudMusicApi 进行二次开发,为开发者提供稳定可靠的网易云音乐数据接口。

适用场景

👥 目标用户

  • 草根站长:需要为网站添加音乐功能的站长
  • 新手开发者:刚接触前端开发的初学者
  • 博客作者:想要在博客中嵌入音乐播放器
  • 前端开发者:需要快速集成音乐播放功能

NeteaseMiniPlayer v2 [NMP v2]在用户网站中的集成架构

用户网站通过嵌入 NMP v2 播放器 实现网易云音乐播放功能,其整体依赖与内部结构如下:

  • NMP v2 播放器 作为核心组件,承担以下职责:

    1. 对接网易云音乐数据
      • 通过 NeteaseCloudMusicApi 代理请求
      • 最终访问 网易云音乐服务器 获取歌曲、歌词等资源
    2. 加载前端资源
      • 引入独立的 CSS 样式文件,用于控制外观与主题表现
      • 加载 JavaScript 核心文件,实现全部交互逻辑
  • CSS 样式文件 支撑 主题系统,支持动态切换亮色/暗色等视觉风格。

  • JavaScript 核心文件 内部划分为三个关键功能模块:

    1. 播放控制:管理音频播放、暂停、进度跳转、音量调节等行为
    2. 歌词显示:解析并实时同步 LRC 歌词,高亮当前播放行
    3. API 请求:封装对 NeteaseCloudMusicApi 的调用,处理数据获取与错误重试

开源协议

NeteaseMiniPlayer v2 基于 Apache 2.0 开源协议发布,允许商业使用、修改和分发。

快速体验

如果你想快速体验 NMP v2 的功能,可以访问:

下一步

🏗️ 技术架构

NeteaseMiniPlayer 主类作为核心控制器,协调以下八大功能模块:

  1. 配置解析模块

    • 解析 HTML 自定义属性(如 data-*)作为初始配置
    • 对配置项进行合法性校验与默认值填充
  2. UI 渲染模块

    • 动态生成播放器 DOM 结构
    • 应用当前主题样式
    • 实现播放/暂停按钮、进度条等交互动画效果
  3. 事件处理模块

    • 响应用户交互:播放/暂停、上一首/下一首
    • 处理进度条拖拽与跳转
    • 支持音量滑块调节
  4. 音频控制模块

    • 基于 HTML5 Audio API 封装播放逻辑
    • 管理播放状态(播放中、暂停、加载等)
    • 监听音频原生事件(如 timeupdate、ended)
  5. API 请求模块

    • 调用网易云音乐第三方 API(如 neteasecloudmusicapi)获取歌曲与歌词数据
    • 将原始响应转换为内部统一数据格式
    • 实现网络错误、限流、空结果等异常处理
  6. 歌词处理模块

    • 解析标准 LRC 格式歌词文本
    • 建立时间戳与歌词行的映射关系
    • 实时高亮当前播放行并滚动显示
  7. 缓存管理模块

    • 缓存已请求的歌曲元数据与歌词,避免重复请求
    • 支持按时间或存储策略自动清理过期缓存
  8. 主题系统模块

    • 自动检测系统或用户指定的主题偏好(如 light/dark)
    • 动态切换 CSS 变量或样式表,实现无刷新换肤

🔧 核心技术栈

技术版本用途选择理由
JavaScriptES6+核心逻辑实现原生支持,无需编译,兼容性好
CSS3-样式与动画现代化特性,支持复杂动画效果
HTML5 Audio API-音频播放控制浏览器原生支持,功能完整
Fetch API-网络请求现代化异步请求方式
NeteaseCloudMusicApi4.x音乐数据源开源、稳定、功能丰富

🌐 项目链接

🚀 快速开始

如果你迫不及待想要体验 NeteaseMiniPlayer,可以直接查看 快速开始指南,几分钟内就能在你的网站中集成一个功能完整的音乐播放器。

📚 文档导航

🤝 贡献

NeteaseMiniPlayer 是一个开源项目,欢迎社区贡献。如果你有任何建议、发现了 bug,或者想要贡献代码,请查看我们的 贡献指南

📄 许可证

本项目基于 Apache 2.0 许可证 开源,你可以自由使用、修改和分发。

Copyright © 2025 NeteaseMiniPlayer