This release is a pre-release and may not be stable for production use.
MiXPlay
MiXPlay(隔空妙播)是一个面向局域网的开放式音频中枢,融合 AirPlay 隔空播放、MiPlay小米妙播、DLNA、OwnTone、API 等多种音频协议,搭载独家定制的全屋播放引擎,打破生态壁垒:除了米果互通,普通安卓与传统音箱也能解锁新玩法!
📢 上游鸣谢与开源合规说明
本项目的基础协议桥接能力整合了以下优秀的开源组件:
- 小米账号与云端通讯:miservice (MIT)
- 小米妙播协议(MiPlay):FusionPlay-Android (MIT)
- 隔空播放(AirPlay 1/2):shairplay-rust (LGPL-3.0)
💡 灵感与思路参考: 本项目在开发与设计过程中,还参考了以下社区项目的思路并进行了重构与自用优化,在此特别致谢:
- MiAir / miair-next / XiaoMusic
📌 功能边界与授权说明:
- 基础免费能力:基于上述上游组件实现的单设备直通播放、单机声卡输出、小米音箱 1对1 桥接等基础功能完全免费开放使用。
- 自研赞助模块:本项目自研的
Audio Hub 音频流转中枢、MiXPlay 全屋多端同步播放、网页音箱集群 (/pod)及定制延迟环形对齐等组合玩法属于个人定制扩展,作为可选的赞助解锁功能。 - 第三方开源许可全文:详见项目中的 THIRD-PARTY-NOTICES.md 与 LICENSE。
✨ 功能特色
- 🚀 桥接 AirPlay:局域网直连播放,低延迟无损直通
- 🚀 模拟 MiPlay:局域网直连播放,低延迟无损直通
- 🔥 多房间同步播放:定制版
MiXPlay 全屋播放 - 🌐 网页音箱串流:任意网页变虚拟音箱,展示歌曲信息
- 🔌 通用音频 API:标准的流媒体接口,轻松对接音乐库
- 🔥 接入 OwnTone:兼容跨协议的
多房间播放- OwnTone 支持 AirPlay 1&2、Chromecast、DLNA 等
- 📦 多平台通用:支持 Windows、macOS、Linux、Android Termux 及 Docker 部署
MiXPlay 内置纯 Rust 原生 AirPlay 驱动(原生支持 AirPlay 2 及 AirPlay 1 协议),无需安装复杂的 C 语言依赖即可享受极低延迟无损直通。
📊 音频方案与协议对比
| 对比维度 | MiXPlay | AirPlay 1 | AirPlay 2 | DLNA | 小米妙播 |
|---|---|---|---|---|---|
| 系统级音频投射 | ✅ 全家桶 | ✅ 全家桶 | ✅ 全家桶 | ❌ 部分 App | ✅ 全家桶 |
| 多房间同步播放 | ✅ 支持 | ☑️ 仅限 iTunes | ✅ 支持 | ❌ 不支持 | ✅ 支持 |
| 音频通信链路 | ☑️ 同步串流 | ☑️ 同步串流 | ✅ 独立协同 | ☑️ 分离遥控 | ✅ 独立协同 |
| 小米音箱兼容性 | ✅ 全系音箱 | ☑️ Sound 系列 | ☑️ Sound 系列 | ☑️ 部分音箱 | ☑️ 部分音箱 |
| OwnTone 兼容性 | ✅ 支持 | ✅ 支持 | ✅ 支持 | ☑️ 部分音箱 | ❌ 不支持 |
| 硬件加密门槛 | ✅ 无门槛 | ☑️ 苹果授权 | ☑️ 苹果授权 | ✅ 无门槛 | 🔒 小米独占 |
🔊 MiXPlay 支持音箱列表 ➡️ 点我跳转查看
🎵 音频处理与格式支持
- 原生直连格式:
.mp3、.m4a、.flac、.wav、.m3u8- 小米音箱硬件原生解码,音频数据由中枢直接转发,0 额外 CPU 转码开销,无损低延迟。
- 中枢转码扩展:
- 内置静态编译 FFmpeg 引擎,支持将非标准流实时转码推流至各个音箱端。
⚠️ 本项目主要是完善苹果用户的小米音箱 ✖️ AirPlay 体验,暂不考虑 DLNA 功能。
- DLNA 是一个古早的音频协议,虽然新老设备都能用,但体验不太好、稳定性欠佳
- 小米音箱自带 DLNA 功能不完整,第三方 DLNA 需额外适配,体验依然不完美
- 如果需要第三方 DLNA 功能,推荐使用 MiAir、miair-next 等项目
🚀 安装与运行方式
1、Docker 容器部署
Docker Compose(推荐 NAS / 服务器)
services:
mixplay:
image: ghcr.io/juneix/mixplay
# image: docker.1ms.run/juneix/mixplay # 毫秒镜像加速
container_name: mixplay
network_mode: host
restart: unless-stopped
environment:
WEB_PORT: 8820
devices:
- /dev/snd:/dev/snd
volumes:
- ./conf:/app/conf
- /etc/machine-id:/host/etc/machine-id:ro
Docker CLI
docker run -d \
--name mixplay \
--network host \
--restart always \
-e WEB_PORT=8820 \
-v "${PWD}/conf:/app/conf" \
-v "/etc/machine-id:/host/etc/machine-id:ro" \
ghcr.io/juneix/mixplay
# docker.1ms.run/juneix/mixplay # 毫秒镜像加速
2、飞牛应用商店 (fnOS)
在飞牛 fnOS 应用中心搜索【MiXPlay - 隔空妙播】即可在线一键安装。
3、全平台通用
a. 已有 uv 环境
uv tool install --python 3.12 mixplay-hub
b. 一键安装 uv 和 mixplay
# 🐧 Linux / 🍎 macOS / 📱 安卓 Termux (Linux 自动注册 Systemd 开机自启服务,Mac 自动生成桌面快捷方式)
curl -fsSL https://raw.githubusercontent.com/juneix/MiXPlay/main/scripts/install.sh | bash
# 国内加速
curl -fsSL https://gh-proxy.org/https://raw.githubusercontent.com/juneix/MiXPlay/main/scripts/install.sh | bash
# 🪟 Windows (PowerShell 一键安装,自动生成桌面快捷方式)
powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/juneix/MiXPlay/main/scripts/install.ps1 | iex"
# 国内加速
powershell -ExecutionPolicy ByPass -c "irm https://gh-proxy.org/https://raw.githubusercontent.com/juneix/MiXPlay/main/scripts/install.ps1 | iex"
💡 日常使用:
- 桌面用户:双击桌面的 MiXPlay 快捷方式(或运行
mixplay-desktop),自动常驻系统托盘并拉起网页控制台,右键托盘图标可快速打开控制台、查看日志或退出;- 服务器/NAS 用户:后台守护运行
mixplay start,查看状态mixplay status,停止服务运行mixplay stop。
🔐 小米账号与登录凭证说明
-
登录方式推荐与区别
- 米家 App 扫码登录 (强烈推荐 ⭐⭐⭐⭐⭐):
通过移动端米家 App 原生扫码授权,获取官方长效根凭证
passToken。有效期长达数月至半年,且后台会自动无感静默续期,100% 绕过滑块验证码与异地风控。 - 手动 Cookie 登录 (备用):
通过浏览器 F12 抓取网页版 Cookie(
userId+passToken),作为备用方案。网页 Cookie 有效期相对较短(通常数周),且若在电脑浏览器点击“退出登录”会立即失效。
- 米家 App 扫码登录 (强烈推荐 ⭐⭐⭐⭐⭐):
通过移动端米家 App 原生扫码授权,获取官方长效根凭证
-
为什么不支持账号密码直接登录? 直接提交账号密码极易触发小米云端的安全风控(如图片验证码、短信二次验证、异地设备异常封禁),导致换票失败率极高,故不提供该方式。
-
自动续期原理 系统基于保存的
passToken,后台会自动向小爱云端静默换取播放所需的短期通行证(serviceToken,通常有效期 30 天),全自动轮转,日常使用无需手动干预。 -
安全与隐私提示 ⚠️ 小米的
passToken为核心凭据,请妥善保管勿公开泄露。本项目纯内网个人使用,Web 控制台默认无需密码。如需外网访问,强烈建议配合Tailscale、Zerotier或 VPN 使用。
❤️ 支持项目
|
微信 |
支付宝 |
Metadata
Release files for mixplay-hub 1.4.4b1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mixplay_hub-1.4.4b1-cp312-cp312-win_amd64.whl | CPython 3.12 | CPython 3.12 | Windows x86-64 | Details |
| mixplay_hub-1.4.4b1-cp312-cp312-manylinux_2_34_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.34+ x86-64 | Details |
| mixplay_hub-1.4.4b1-cp312-cp312-macosx_11_0_arm64.whl | CPython 3.12 | CPython 3.12 | macOS 11.0+ ARM64 | Details |
Total release size: 29.5 MB
Release files / mixplay_hub-1.4.4b1-cp312-cp312-win_amd64.whl
| Download URL | mixplay_hub-1.4.4b1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 9.8 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
92b0abd39d4378706b55f705c272505476e42bb9b1b4a7965b409a523106b54f
|
|
BLAKE2b-256 checksum How to use checksums |
e8505bc6de3e2040e82c5a2dafb1a08e181f144e822ce69e635480324caab4f1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / mixplay_hub-1.4.4b1-cp312-cp312-manylinux_2_34_x86_64.whl
| Download URL | mixplay_hub-1.4.4b1-cp312-cp312-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 10.5 MB |
| Tags | CPython 3.12 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
1d0b5b9c8d74afcb538f304b08ca6fa5bfea5e21f162232962fd8adc64b20d08
|
|
BLAKE2b-256 checksum How to use checksums |
0e3bcb50bd7c86392eed0724e06e29f929e29016b956b7442cb9f95bcb7a3f2d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / mixplay_hub-1.4.4b1-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | mixplay_hub-1.4.4b1-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 9.2 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
85b205f1bea093a16f8267fd54f2c12041e050d473b35b675a903e83aa2f1ded
|
|
BLAKE2b-256 checksum How to use checksums |
1d0379aed62a0458552a45e80c0f174a5d0489f8678a2a09d1222070e2b5b222
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|