- 局域网 UDP 组播:服务器一次发送,多客户端同时接收。
- 自适应抖动缓冲:根据网络抖动动态调节播放缓冲以降低延迟。
- 多平台音频:基于 Rust + CPAL,自动选择输入/输出设备。
- 基础指标:延迟、抖动、丢包率、音量 (RMS/峰值)。
- 可选预共享密钥 (PSK) 加密:XChaCha20-Poly1305 保护音频负载。
- 多语言界面(中 / 英)。
深入协议、音频管线与安全设计:见
docs/目录。
要求:Rust 1.75+ (建议 stable 最新)。
git clone <repo-url>
cd RemoteMic
cargo build --release
可选打包 (Dioxus Desktop Bundle):
cargo install dioxus-cli --locked
dx bundle --platform desktop --release
./target/release/remote-mic
或使用打包后的可执行包 (macOS .app / Windows 可执行)。
- 启动程序,选择本机要作为“服务器”的网卡 IP 与输入设备(麦克风)。
- 可选填入 PSK(开启加密)。点击“启动服务器”。
- 在同一局域网其他机器或本机另一进程作为客户端:输入服务器 IP + 端口,必要时同样输入 PSK,点击“连接”。
- 观察指标与音量条;若听不到声音,检查权限或防火墙。
- 初次运行可能被防火墙拦截,请允许本程序的“专用网络”访问。
- 若听不到输入,确认麦克风隐私权限已允许“桌面应用”。
- 首次访问麦克风 / 本地网络会弹权限对话框,需选择允许。
- 若权限被拒绝,可到“系统设置 -> 隐私与安全性”重新开启。
- 需安装系统音频后端 (PipeWire / PulseAudio / ALSA)。
- 某些发行版需手动授予多播或防火墙放行:允许 UDP 239.0.0.0/8 端口入站。
| 问题 | 处理建议 |
|---|---|
| 客户端显示 Key Error | 确认两端 PSK 一致;错误后无需重启服务器,可直接断开重连。 |
| 无法连接 / 超时 | 检查服务器 IP 是否正确、端口是否被占用、防火墙是否允许 TCP/UDP。 |
| 无声音 | 检查输入设备是否有电平、输出设备选择是否正确、系统权限。 |
| 丢包/抖动高 | 使用有线网络;避免与大流量下载同网段;查看是否存在 Wi-Fi 干扰。 |
| 模块 | 状态 |
|---|---|
| 多客户端组播 | 已实现 |
| 自适应抖动缓冲 | 已实现 (EWMA + 动态目标) |
| PSK 加密 | 已实现 (payload AEAD) |
| 鉴权 / 用户管理 | 未实现 |
| FEC / 重传 | 未实现 |
| 可选压缩 (Opus) | 规划中 |
开发者请阅读:docs/developer_guide.md 与其它专题:
docs/protocol.md协议细节docs/audio_pipeline.md音频与抖动缓冲docs/security.md加密与威胁模型
MIT License
图标与第三方素材:见 ATTRIBUTIONS.md。
需要更深入的实现与扩展计划,请查看 docs/。