这是一个基于 Electron 开发的多文件媒体播放器,支持同时播放多个音频和视频文件,并提供丰富的控制功能。
- 多文件同时播放:可以添加多个音频或视频文件同时播放
- 智能频谱显示:
- 启动时显示空白频谱
- 载入音频后自动显示所有音频的混合频谱
- 支持独奏模式:只显示被独奏音频的频谱
- 支持静音处理:忽略被静音音频的频谱
- 实时更新:添加/删除音频、切换独奏/静音状态时自动更新
- 单文件控制:
- 播放/暂停控制
- 音量调节
- 独奏模式(Solo)
- 静音控制
- 删除文件
- 播放列表管理:
- 保存播放列表到 JSON 文件
- 从 JSON 文件加载播放列表
- 总体音量控制:可以调节所有文件的整体音量
- 循环播放:支持循环播放功能,默认开启
- 清空列表:可以一键清空播放列表和频谱显示
- 总体进度控制:可以调节整个播放列表的播放进度
- 拖放支持:支持直接拖放文件到播放器窗口添加文件
- 克隆或下载此项目
- 进入项目目录
- 安装依赖:
npm install - 启动应用:
npm start
项目提供了几种构建脚本,可以一键打包为可执行文件:
- simple-build.bat - Windows批处理脚本(选择构建目标)
- build.ps1 - PowerShell 脚本(选择构建目标)
- build-mac.sh - macOS/Linux shell 脚本
-
安装依赖:
npm install -
构建项目:
# 仅构建 Windows 版本 npm run dist # 仅构建 macOS 版本 npm run dist-mac # 构建所有平台版本 npm run dist-all
构建完成的可执行文件将位于 dist 目录中。
本项目使用 Electron 和 electron-builder,可以构建跨平台的应用程序:
- Windows:
.exe安装程序和.zip便携版本 - macOS:
.dmg磁盘映像和.zip压缩包 - Linux:
AppImage和.deb包
注意:
- 要构建 macOS 应用,您需要在 macOS 系统上运行构建命令
- 要构建 Linux 应用,您需要在 Linux 系统上运行构建命令
- Windows 应用可以在任何支持的系统上构建
为了构建带有自定义图标的安装程序,请在 build 目录中放置平台相关的图标文件:
- Windows:
icon.ico - macOS:
icon.icns - Linux:
icon.png(512x512 pixels recommended)
- 点击"添加文件"按钮,选择一个或多个音频或视频文件添加到播放列表
- 或者直接将文件拖放到播放器窗口
- 每个文件都有独立的播放/暂停按钮和音量控制滑块
- 可以通过"全部播放"按钮同时播放所有文件
- 可以通过"全部暂停"按钮暂停所有正在播放的文件
- 启动状态:应用启动时显示空白频谱
- 载入音频:添加音频文件后自动分析并显示混合频谱
- 独奏模式:点击音频项的"S"按钮启用独奏,只显示该音频的频谱
- 静音处理:点击音频项的"🔇"按钮静音,该音频不会参与频谱混合
- 实时更新:频谱会根据播放状态、独奏状态、静音状态实时更新
- 每个文件有独立的音量控制滑块
- 顶部的"总体音量"滑块可以调节所有文件的整体音量
- 顶部的"总体进度"滑块可以调节所有正在播放文件的进度
- 点击"保存列表"按钮将当前播放列表保存为 JSON 文件
- 点击"加载列表"按钮从 JSON 文件加载播放列表
点击文件条目右侧的"✖"按钮可以将该文件从播放列表中移除。
点击"清空列表"按钮可以清空整个播放列表。
- 使用 Electron 构建跨平台桌面应用
- 使用 HTML5 的
<audio>和<video>元素播放媒体文件 - 通过 IPC 通信实现主进程和渲染进程间的数据交换
- 使用原生文件对话框进行文件选择和保存操作
- 频谱分析技术:
- 使用 Web Audio API 的
AudioContext.decodeAudioData()解码音频文件 - 采用 RMS (Root Mean Square) 算法计算音频能量分布
- 生成256个频段的归一化频谱数据 (0-1范围)
- 使用 wavesurfer.js 库渲染柱状频谱图
- 支持多音频混合频谱计算和实时更新
- 使用 Web Audio API 的
音频格式:
- MP3
- WAV
- OGG
视频格式:
- MP4
- WebM
- MOV
- AVI
- WMV
此项目结构简单清晰,易于扩展和定制:
- main.js - Electron 主进程文件
- index.html - 应用主界面
- style.css - 样式文件
- renderer.js - 渲染进程逻辑
可以根据需要添加更多功能,如:
- 播放进度控制
- 更多媒体格式支持
- 播放模式(顺序播放、随机播放等)
- 快捷键支持
- 频谱功能扩展:
- 实时频谱分析(FFT变换)
- 频谱颜色主题自定义
- 频谱动画效果
- 频谱数据导出功能
- 多频谱视图(时域、频域、3D等)
如果双击批处理文件后出现闪退,请尝试以下解决方案:
-
使用 PowerShell 脚本: 右键点击 build.ps1 文件,选择"使用 PowerShell 运行"
-
以管理员身份运行: 右键点击批处理文件,选择"以管理员身份运行"
-
从命令行运行: 打开命令提示符,导航到项目目录,然后运行:
simple-build.bat -
检查 Node.js 和 npm: 确保已正确安装 Node.js 和 npm,并且它们已添加到系统 PATH 环境变量中
-
macOS 构建:
- 只能在 macOS 系统上构建 macOS 应用
- 需要 Xcode 命令行工具
-
Linux 构建:
- 只能在 Linux 系统上构建 Linux 应用
- 可能需要安装额外的构建依赖
-
代码签名:
- 发布应用时可能需要代码签名证书
- 有关代码签名的详细信息,请参阅 Electron 和各平台的文档
-
频谱不显示:
- 确保音频文件格式受支持(MP3、WAV、OGG等)
- 检查浏览器控制台是否有错误信息
- 尝试重新添加音频文件
-
频谱显示异常:
- 清空播放列表后重新添加音频文件
- 检查音频文件是否损坏
- 重启应用程序
-
频谱更新延迟:
- 频谱分析是异步进行的,大文件可能需要几秒钟
- 查看控制台日志了解分析进度