支持 20+ 音乐平台,持续扩充中:
| 类型 | 平台 |
|---|---|
| 国内平台 | 网易云音乐、QQ音乐、酷狗音乐、酷我音乐、汽水音乐、全民K歌 |
| 国外平台 | Spotify、Apple Music、YouTube Music |
| 点歌机 | 咩播、卡西米尔唱片机、花花直播助手、BQ 点歌姬 |
| 本地播放器 | PotPlayer、Foobar2000、AIMP、Salt Player |
| 其它 | 浏览器、洛雪音乐、MusicFree、Cider、YesPlayMusic |

开发者可利用 Now Playing API 自行设计前端页面,并通过软件内置服务器进行本地部署
API 接口界面:

使用 IDEA 打开项目(需注意:请使用 JDK 11 运行):
| 操作 | 步骤 |
|---|---|
| 运行 | 运行 NowPlayingApplication 类的 main 方法 |
| 打包 | 依次双击 IDEA 右侧 Maven → Lifecycle 的 clean 和 package,在 target 目录下生成 JAR 包 |
| JAR To EXE | 使用 exe4j 将 JAR 包转为 EXE |
external_programs/AudioService/GetMusicStatus 使用 VS Code 打开:
| 操作 | 命令 |
|---|---|
| 运行 | dotnet run |
| 打包 | dotnet publish -c Release -r win-x64 --self-contained -o ./publish |
通过 Assets/AudioService/GetMusicStatus.exe 程序检测音乐软件的播放状态(Playing、Paused、None)和歌曲信息,通常情况下每隔 1 秒输出一次,当检测到歌曲状态变化时会立即输出。
接收命令行参数(具体取值请参考 源码):
| 参数 | 含义 | 描述 |
|---|---|---|
--device-id | 音频设备 ID | 仅检测该音频设备,默认值为 default,检测默认音频设备 |
--platform | 音乐平台 | 期望检测的音乐软件平台,默认值为 netease,检测网易云音乐 |
--smtc | 是否优先使用 SMTC | 优先通过 SMTC 识别歌曲信息,默认值为 true |
--poll-interval | 轮询间隔(ms) | 建议取值范围为 100~1000 ms,默认值为 100 ms(最快) |
GetMusicStatus.exe 程序可独立运行,运行示例如下图所示:


说明
由于播放进度是通过算法逻辑计算出来的,所以拖动进度条无法检测,但暂停动作可以检测到。该部分使用了 这段代码 来获取指定进程的实时音量,从而判断音乐是否暂停。
但是针对网易云音乐、全民K歌已单独适配,C# 程序通过 UI Automation 读取主窗口的进度文本(
MM:SS / MM:SS),可以实时捕捉到拖动进度条的动作。若支持进度条同步,
GetMusicStatus.exe会在原先两行输出(状态、歌曲信息)之外额外输出一行Progress:currentSec|totalSec;如果读取失败,会自动回退原先的两行输出。
Java
46.6%
AutoHotkey
23.7%
C#
22.3%
JavaScript
5.5%
HTML
1.5%
支持 20+ 音乐平台,持续扩充中:
| 类型 | 平台 |
|---|---|
| 国内平台 | 网易云音乐、QQ音乐、酷狗音乐、酷我音乐、汽水音乐、全民K歌 |
| 国外平台 | Spotify、Apple Music、YouTube Music |
| 点歌机 | 咩播、卡西米尔唱片机、花花直播助手、BQ 点歌姬 |
| 本地播放器 | PotPlayer、Foobar2000、AIMP、Salt Player |
| 其它 | 浏览器、洛雪音乐、MusicFree、Cider、YesPlayMusic |

开发者可利用 Now Playing API 自行设计前端页面,并通过软件内置服务器进行本地部署
API 接口界面:

使用 IDEA 打开项目(需注意:请使用 JDK 11 运行):
| 操作 | 步骤 |
|---|---|
| 运行 | 运行 NowPlayingApplication 类的 main 方法 |
| 打包 | 依次双击 IDEA 右侧 Maven → Lifecycle 的 clean 和 package,在 target 目录下生成 JAR 包 |
| JAR To EXE | 使用 exe4j 将 JAR 包转为 EXE |
external_programs/AudioService/GetMusicStatus 使用 VS Code 打开:
| 操作 | 命令 |
|---|---|
| 运行 | dotnet run |
| 打包 | dotnet publish -c Release -r win-x64 --self-contained -o ./publish |
通过 Assets/AudioService/GetMusicStatus.exe 程序检测音乐软件的播放状态(Playing、Paused、None)和歌曲信息,通常情况下每隔 1 秒输出一次,当检测到歌曲状态变化时会立即输出。
接收命令行参数(具体取值请参考 源码):
| 参数 | 含义 | 描述 |
|---|---|---|
--device-id | 音频设备 ID | 仅检测该音频设备,默认值为 default,检测默认音频设备 |
--platform | 音乐平台 | 期望检测的音乐软件平台,默认值为 netease,检测网易云音乐 |
--smtc | 是否优先使用 SMTC | 优先通过 SMTC 识别歌曲信息,默认值为 true |
--poll-interval | 轮询间隔(ms) | 建议取值范围为 100~1000 ms,默认值为 100 ms(最快) |
GetMusicStatus.exe 程序可独立运行,运行示例如下图所示:


说明
由于播放进度是通过算法逻辑计算出来的,所以拖动进度条无法检测,但暂停动作可以检测到。该部分使用了 这段代码 来获取指定进程的实时音量,从而判断音乐是否暂停。
但是针对网易云音乐、全民K歌已单独适配,C# 程序通过 UI Automation 读取主窗口的进度文本(
MM:SS / MM:SS),可以实时捕捉到拖动进度条的动作。若支持进度条同步,
GetMusicStatus.exe会在原先两行输出(状态、歌曲信息)之外额外输出一行Progress:currentSec|totalSec;如果读取失败,会自动回退原先的两行输出。
Java
46.6%
AutoHotkey
23.7%
C#
22.3%
JavaScript
5.5%
HTML
1.5%