Skip to content

sky121666/NB_Music

This branch is 164 commits behind NB-Group/NB_Music:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

048d273 · Mar 18, 2025

History

73 Commits
Mar 11, 2025
Feb 16, 2025
Jan 20, 2025
Mar 10, 2025
Jan 10, 2025
Mar 18, 2025
Jan 10, 2025
Mar 11, 2025
Mar 10, 2025
Jan 20, 2025
Dec 6, 2024
Mar 8, 2025
Mar 10, 2025
Jan 20, 2025
Mar 11, 2025
Mar 10, 2025
Mar 18, 2025
Mar 18, 2025

Repository files navigation

NB Music

页面截图 GitHub license GitHub last commit

简介

由NB-Group和User782Tec两名初中生开发的跨平台音乐播放器!无需VIP就能畅听全网音乐,因为我们直接从哔哩哔哩获取音频资源~ 这里有:

  • 全网音乐自由播放(包括其他平台要VIP的歌曲!)
  • 一键导入B站收藏夹当歌单
  • 智能歌词捕捉系统(自动匹配+手动补全双保险)

初中生の黑科技宣言:我们才不是只会做题的小可爱!用Electron+各大API,带你体验真正的白嫖听歌自由ψ(`∇´)ψ

哦,对了!我们基于以下开源项目,感谢他们!


用户指南

下载

Releases查看最新版本喵! 话说应该会有自动更新的,代码里写了的()

特色功能说明书

B站相关

  • 我们从B站自动抓取最高音质版本(悄悄说:登录带大会员的账号才能听Hi-Res的QwQ)
  • 收藏夹一键导入歌单(一点迁移成本都没有哦)

歌词相关

  • 从网易云自动抓取歌词捏。
  • 自动匹配歌词的不对?你可以手动歌名(然后我们再去全网搜刮~记得在设置里打开哦)

🛠️ 遇到问题怎么办?

  • 歌曲加载失败→多点几次播放键(我们的重试机制超顽强!)
  • 其他bug→对着屏幕说"修好它!"(然后重启应用就OK啦~才怪!要记得反馈给我们哦)
  • 当然,修bug最重要的还是重启应用啦!

开发者文档

架构设计

技术栈

  • 🚀 Electron - 跨平台桌面应用开发框架
  • 🎵 Html Dom API - 音频处理
  • 🎨 原生 CSS - 界面样式
  • 📦 Yarn - 包管理器
  • 🔄 GitHub Actions - CI/CD

核心模块

├──  .git/                       # Git版本控制文件夹
├──  .gitattributes               # Git属性配置
├──  .github/                     # GitHub工作流配置
│   ├──  workflows/               # CI/CD工作流配置
│   │   ├──  release.yml          # 发布工作流
├──  .gitignore                   # Git忽略文件配置
├──  .gitmodules                  # Git子模块配置
├──  .prettierrc                  # Prettier配置
├──  .vscode/                     # VSCode配置文件夹
│   ├──  launch.json              # 调试配置文件
├──  LICENSE                      # 项目许可证
├──  README.md                    # 项目说明文档
├──  dist/                        # 构建输出文件夹
├──  eslint.config.mjs            # ESLint配置
├──  icons/                       # 项目图标资源
│   ├──  NB Music.png             # 应用图标
│   ├──  icon.icns                # macOS图标
│   ├──  icon.ico                 # Windows图标
│   ├──  icon.png                 # PNG格式图标
├──  image.png                    # 用于展示的图片
├──  img/                         # 项目图像资源
│   ├──  NB_Music.png             # 封面图像
│   ├──  poster.jpeg              # 海报图像
├──  package.json                 # 项目依赖管理
├──  public/                      # 公共资源文件夹
├──  src/                         # 源代码文件夹
│   ├──  javascript/              # JavaScript文件
│   │   ├──  AudioPlayer.js       # 音频播放器功能
│   │   ├──  CacheManager.js      # 缓存管理器
│   │   ├──  FavoriteManager.js   # 收藏管理器
│   │   ├──  LoginManager.js      # 登录管理器
│   │   ├──  LyricsPlayer.js      # 歌词播放器
│   │   ├──  MusicSearcher.js     # 音乐搜索器
│   │   ├──  MusiclistManager.js  # 歌单管理器
│   │   ├──  PlaylistManager.js   # 播放列表管理器
│   │   ├──  SettingManager.js    # 设置管理器
│   │   ├──  UIManager.js         # UI管理器
│   │   ├──  UpdateManager.js     # 更新管理器
│   ├──  main.html                # 主要HTML文件
│   ├──  main.js                  # 主要JavaScript文件
│   ├──  script.js                # 辅助脚本
│   ├──  splash.html              # 启动画面HTML
│   ├──  styles/                  # 样式文件夹
│   │   ├──  base.css             # 基础样式
│   │   ├──  components/          # 组件样式
│   │   │   ├──  animations.css   # 动画样式
│   │   │   ├──  controls.css     # 控件样式
│   │   │   ├──  dialogs.css      # 对话框样式
│   │   │   ├──  lyrics.css       # 歌词样式
│   │   │   ├──  musiclist.css    # 歌单样式
│   │   │   ├──  notifications.css # 通知样式
│   │   │   ├──  player.css       # 播放器样式
│   │   │   ├──  settings.css     # 设置样式
│   │   │   ├──  sidebar.css      # 侧边栏样式
│   │   │   ├──  song.css         # 歌曲样式
│   │   │   ├──  titlebar.css     # 标题栏样式
│   │   ├──  index.css            # 首页样式
│   │   ├──  utilities.css        # 辅助样式
│   │   ├──  variables.css        # 变量样式
│   ├──  utils.js                 # 工具函数
├──  yarn.lock                    # Yarn锁文件

数据流向

Loading
graph TD
    A[用户操作] --> B{事件中心}
    
    %% 核心播放控制流
    B --> C[AudioPlayer]
    C -->|播放状态| D[LyricsPlayer]
    C -->|进度同步| E[视频背景]
    
    %% 播放列表管理流
    B --> F[PlaylistManager]
    F -->|歌单更新| G[MusiclistManager]
    G -->|持久化| H[localStorage]
    
    %% 搜索与缓存流
    I[B站API] -->|音频/视频链接| J[MusicSearcher]
    J -->|URL缓存| K[CacheManager]
    K -->|过期检查| F
    
    %% UI更新流
    F -->|播放状态| L[UIManager]
    L -->|界面更新| M[DOM]
    
    %% 收藏管理流
    B --> N[FavoriteManager]
    N -->|收藏同步| H
    
    %% 设置管理流
    O[SettingManager] -->|配置| F
    O -->|事件处理| L

    %% 状态保存流
    F -->|播放进度| H
    C -->|当前时间| H

贡献指南

  1. 克隆仓库后执行 yarn add --magic(开玩笑的,正常add就好)
  2. 调试主进程:yarn run electron:debug
  3. 直接运行: yarn run run
  4. 打包: yarn run build
  5. 代码规范:
    • 一定要组件化哦!面向对象启动!
    • 用yarn!
    • 其它没啥,代码合理即可。
    • 求大佬PR(雾)
  6. 提PR时请附上猫耳表情包以通过审核(大雾)

版权说明
开源协议:GPL-3.0 开发团队:NB-Group和User782Tec这两名初中生(作业没写完也要写代码的传说!)(其实我们成绩都很好的啦)

尽管我们代码开源,但我们仍受《中华人民共和国著作权法》的保护。 禁止一切使用我们源代码的商业行为,包括但不限于,打包售卖、未经允许的搬运等。 (上次我们的Win12就被倒卖源码了QwQ) 如果用于学习交流,那么请便,但是务必标注作者和项目链接哦。

其它条款请见 GPL-3.0 协议文本。

About

A nearly perfect music player.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 66.6%
  • CSS 17.3%
  • HTML 16.1%