一个全平台方案:电脑端跑 Python 服务;手机端用浏览器/PWA 遥控(iOS/Android 通用)。
- 二维码配对:电脑启动时在终端打印二维码,同时生成
pairing_qr.png。 - 播放控制:播放/暂停、上一首/下一首、音量+/音量-、静音。
- 显示当前曲名/播放状态:
- Windows:winsdk / 系统媒体会话(GSMTC)
- macOS:AppleScript 读取 Music/Spotify
- Linux:playerctl metadata/status/position
- 进度条拖动:
- macOS / Linux:支持 seek(Music/Spotify/playerctl)
- Windows:尝试用系统媒体会话 seek(若播放器支持)
- 权限与安全:PIN 验证 + 限制局域网网段 + 可选 HTTPS(自备证书)
- 电脑端安装依赖(Python 3.9+ 推荐)
pip install -r requirements.txt- Linux 需要系统安装 playerctl(以及 pactl 用于静音)
- Debian/Ubuntu:
sudo apt install playerctl pulseaudio-utils - Arch:
sudo pacman -S playerctl pulseaudio - Fedora:
sudo dnf install playerctl pulseaudio-utils
- 首次初始化(推荐)
python3 pc_server.py --init-only初始化会创建/更新:
.token.config.json(含 PIN、允许网段)pairing_qr.png
- 启动
python3 pc_server.py启动后会输出:
- 电脑端监听地址与端口(默认 8765)
- PIN(首次会随机生成,并写入
.config.json) - 二维码(手机扫码即开)
- 配对页地址(在电脑浏览器打开查看二维码):
/pair
手机扫二维码后,网页会提示你输入 PIN;之后会记住配对信息。可“添加到主屏幕”作为 PWA 使用。
python3 pc_server.py --port 8765 --pin 1234
python3 pc_server.py --allow 192.168.1.0/24 --allow 10.0.0.0/8
python3 pc_server.py --ssl-cert cert.pem --ssl-key key.pem在 Windows 终端进入项目目录后执行:
build_windows.bat生成文件:
dist\MediaRemote.exe
运行:
dist\MediaRemote.exe说明:
exe会自动加载内置web/静态资源。.token、.config.json、pairing_qr.png会写在exe所在目录。
pc_server.py:服务端入口(FastAPI + WebSocket)media_control/:不同系统的媒体控制与状态读取web/:手机端 PWA 页面
- Windows 的“当前曲目/进度/seek”依赖播放器是否接入系统媒体会话(Chrome/Edge、Spotify、部分播放器通常支持)。
- macOS 脚本默认优先 Music,否则尝试 Spotify。