# HomePod Bridge Stereo — 1.2.0 Preview 1 单独制作的组合发现兼容测试版,应用名为 **HomePod Bridge Stereo.app**。 ## 本次改进 - 扫描并列出设备,取代必须手填名称的设置方式。 - 同时读取 AirPlay 与 RAOP 服务,读取组合名称 gpn、立体声标识 tsid 和主节点标记 igl。 - 同一立体声组合归为一个入口。只有发现唯一声明的主节点才自动连接;多个同名且不属于同一组合的设备不会被随意合并。 - 按组合或设备标识保存选择;设备改名、IP 变化后仍按标识寻找。组合主节点变化时重新解析入口。 - 分别说明未发现设备、名称不匹配、多个同名目标及组合入口不明确。 - 提供成员直连入口、左右声道测试音,以及可导出的设备发现报告。 - 保留 1.1.1 的系统音量、耳机优先、睡眠恢复和 5 秒静音待机。此次没有修复静音后首次短音可能丢失的问题。 ## 使用方法 1. 将 **HomePod Bridge Stereo.app** 拖入 Applications。它与正式版名称不同,可并排存放。 2. 在准备测试的电脑上退出正式版,再启动测试版。不能同时运行两个转发程序;测试版发现正式版运行时会拒绝启动或暂停自身。 3. 允许测试版本地网络访问与系统音频录制;独立应用标识需要独立授权。 4. 点击“扫描并选择 HomePod”。通常约 8–12 秒。 5. 优先选取 `Speaker · 立体声组合` 一类可用组合入口。 6. 点击“启用系统音频转发”,播放熟悉的音乐或视频。 7. 点击“左右声道测试”:先听左声道的低音,再听右声道的高音。要确认两台均出声,且左右对应正确。 如果组合显示“入口不明确”,程序没有足够证据自动选主节点。可以选择对应的“组合成员直连(需验证)”逐个测试;这只是协议兼容测试,不保证两台都出声。不要同时启动两个应用向两台分别发送,以免冲突。 若仍失败,使用菜单“导出设备发现报告”。报告包含广播名称、局域网 IP、设备/组合标识和路由标记;不包含录音、密码或配对密钥。仅向排查人员提供。房间名和系统菜单显示名不一定等于扫描名称,设备列表无需用户猜测填名。 ## 独立性与回退 应用标识:`local.homepod.bridge.stereo`;音频设备 UID:`local.homepod.bridge.stereo.output`。 偏好设置、登录启动注册及日志与正式版分开。默认不注册登录启动。日志为 `~/Library/Logs/HomePodBridge-Stereo.log` 与 `HomePodBridge-Stereo-sender.log`。发送脚本与库随应用内置,不读取正式版 Application Support 中的脚本。 回退时退出测试版,重新打开正式版并按需启用转发即可。无需拆除 HomePod 的立体声配对。 ## 验证范围 已完成模拟广播数据的组合归类、唯一主节点选择、重名歧义、主节点切换、改名/IP 变化、部分扫描结果合并、报告敏感字段过滤,以及原有发送和音量回归测试。 **本机只有单台接收器,没有运行新应用接管音频,没有完成双机声学/同步实测。** 因此这是用于解决发现与选择问题的兼容测试版,不能标注为已验证全面支持 HomePod 立体声。接收器固件仍可能影响实际组播放。 适用 Apple Silicon、macOS 14.4+、Apple Command Line Tools Python 3.9。应用使用临时本地签名,未经过 Apple 公证。首次打开按 macOS 隐私与安全提示处理,不关闭系统安全保护。 ## 重新构建 运行 `zsh build.sh`;依赖已经内置,不会联网安装软件。测试:`python3 -B -m unittest discover -s tests -p 'test_*.py'`。 参考: - https://github.com/openairplay/airplay-spec/blob/master/src/service_discovery.md - https://github.com/owntone/owntone-server/issues/1413 - https://github.com/music-assistant/support/issues/6469 公开报告显示某些立体声广播会出现多个 igl=1;本版本遇到这种情况不会假设其中任一台是唯一主节点,保留诊断和明确成员入口供实测。