这篇写什么?
目标很具体:Soundbar(主机)+ Speaker(从机),先跑通 Multi-Room——配网、传音频、从机出声、基本同步。
一句话:
Soundbar 连 Wi-Fi → 蓝牙搜 Speaker → 下发 Wi-Fi 入网
→ MS12 PCM → AIDL → Soundbar App → Snapcast → Speaker ALSA
同套底座以后还能扩展 Multichannel 无线家庭影院(后置 / 低音炮分声道),但两条产品线不要混;本文以 Multi-Room 为主。
一、我们要做什么
以 Soundbar 为主机,做两条自研无线音频能力:
| 能力 | 场景 | 本文权重 |
|---|---|---|
| Multi-Room 多房间音乐 | 全屋同播,或分房间不同内容 | 主目标(Demo 先跑通) |
| Multichannel 无线家庭影院 | 电视/电影/游戏,按声道分给后置与低音炮 | 同底座扩展,第一阶段并行产品化 2.1/3.1 |
二、场景与问题清单(Multi-Room)
| # | 场景 / 问题 | 当前结论 |
|---|---|---|
| 1 | 所有设备播同一首歌,如何组网?谁当下载最快的「主机」? | Demo 固定 Soundbar 为主机;「最快下载者当主机」留到后续 |
| 2 | 各房间播不同歌,还要不要主机? | 要。分发与时钟仍需协调者 |
| 3 | 音乐分发是否必须主机? | 必须。主机负责源与分发 |
| 4 | 传输方式? | Snapcast(Phase 0/Demo) |
| 5 | 同步方式? | 时间戳 + 主机补 delay(可复用已验证的延迟闭环思路) |
| 6 | 组网? | 蓝牙搜索设备 + Wi-Fi 组网配对 |
| 7 | Speaker / Soundbar 配网后? | 信息上报 Skway,手机 App 可管设备 |
| 8 | Demo 目标? | Soundbar 主机 + Speaker 从机,先通 Multi-Room |
Demo 跑通四步
- Soundbar 连 Wi-Fi → 蓝牙搜 Speaker → 配对 → 下发 Wi-Fi → Speaker 入网
- Soundbar / Speaker 设备信息上 Skway(手机 App 可控)
- Soundbar App 可添加 Speaker(组网)
- PCM → AIDL → App → Snapcast → Speaker 播放
MS12 PCM → AIDL → Soundbar App → Snapcast → Speaker → ALSA
三、两条产品线不能混
3.1 对比
| 维度 | Multi-Room 多房间音乐 | Multichannel 无线家庭影院 |
|---|---|---|
| 典型用途 | 全屋同一首歌 / 各房间不同歌 | 看电视 / 电影 / 游戏 |
| 声道关系 | 各房间播相同 stereo | 各 speaker 播不同声道(L/R/LS/RS/LFE…) |
| 延迟容忍 | 较高,不断音即可 | 很低,口型与左右声道不能乱 |
| 主机角色 | 手机 / App 或任一播放端(长期);Demo = Soundbar | Soundbar 必须是主机 |
| 核心指标 | 分组、控制、覆盖 | 声道映射 + 多设备同步 + 音画对齐 |
| 第一阶段 | Demo 主路径 | 产品目标 2.0 / 2.1 / 3.1 |
| 第二阶段 | 可顺带支持 | 5.1 → 5.1.2 / 5.1.4 |
结论: Demo 先通 Multi-Room;产品化主攻 Multichannel 2.1/3.1;Multi-Room 作为同一套系统的扩展能力。
3.2 第一版范围(与 Multi-Room / 早期 Multichannel 共用)
| 类别 | 内容 |
|---|---|
| 要做 | Soundbar 本地播放 + 1~2 个 Linux Speaker + 可选 Sub;PCM 48k/16bit;发现/配对;feedback;本地 speaker delay;start/stop/flush;Snapcast 立体声分发 |
| 不做(本阶段) | 5.1.4;Cast/AirPlay 认证;DRM 完整策略;Hi-Res;复杂房间校准 |
四、关键决策(Demo)
| 决策项 | 结论 |
|---|---|
| 音频传输 | Snapcast |
| 数据通路 | MS12 → PCM → AIDL → APP → Snapcast → 音箱 → ALSA |
| 主机 / 从机 | Soundbar = 主机,其他音箱 = 从机 |
| 组网 | 蓝牙搜索 + Wi-Fi 配对;触发:摇一摇 / 按键 / App |
| 后端 | 配网后信息上 Skway |
| 声道(短期) | 先传立体声,通了再做多声道 |
| 同步 | 时间戳 + 主机补 delay,目标几十 ms 内 |
五、市面方案给我们什么启发
做得好的方案(AirPlay 2 / Cast / Sonos / DTS Play-Fi / WiSA / 华为 / 小米 / 天猫精灵)底层规律一致:
- Wi-Fi 传音频
- 每包带 播放时间戳
- 有 主时钟 / 组协调者
- App 管发现配对
5.1 总览(摘)
| 方案 | 传输 | 同步 | 多房间 | 对我们 |
|---|---|---|---|---|
| AirPlay 2 | RTP + ALAC/AAC | PTP | 强 | 封闭,不学底座 |
| Google Cast | 各端拉流 | Group Coordinator | 强 | 偏 multi-room,不解决 HAL 抓 TV PCM |
| Sonos | 专有 + timestamp | GC | 体验标杆 | 学易用性 |
| DTS Play-Fi | Wi-Fi 48k/16 分声道 | 专有 | HT 成熟 | 学家庭影院体验 |
| Snapcast(开源) | TCP/UDP + server time | NTP/server time | 偏 multi-room | Phase 0 / Demo 验证 |
| 华为 / 小米 | Wi-Fi 私有 | 分布式 / 音频组 | 强 | 学 App / 语音体验 |
| 天猫精灵 5.1 | Wi-Fi 无线 5.1 | 专有 | HT 形态接近 | 国内竞品参考 |
我们学: 时间戳 + 缓冲 + 反馈闭环;Multi-Room 交互学华为/小米;家庭影院体验学 Play-Fi / 天猫。
我们不走: AirPlay/Cast 认证生态;Matter 音频;开源套壳量产(Snapcast 只做 Phase 0 验证与 Demo)。
5.2 延迟感对照(粗)
| 场景 | 典型延迟感 |
|---|---|
| 华为/小米 多房间同播 | 理想 50~150ms,差网数百 ms |
| 小米全屋播放 | 官方 ~80ms,实测 200~500ms 均有 |
| Phase 0 Demo | 固定 buffer ~120ms(可配) |
| Phase 1 目标 | 设备间 sync <20ms |
六、Aetheryal 验证了什么、自研换什么
已在 Soundbar 跑通:
HAL 抓解码后 PCM → 上层分发 → property 反向补偿本地喇叭与视频延迟
这条 「抓 PCM + 延迟闭环」 路径正确,自研必须保留。
局限: 传输、配对、音箱管理、诊断在黑盒内,难定制 App、弱网与自有音箱生态。
结论: 保留机制,替换黑盒传输层 → 自有协议 / 服务 / App;Demo 阶段传输先用 Snapcast 打通。
相关技术细节见:Aetheryal Multi-Room 架构:从 TVUI 到 MS12 PCM 回调。
七、自研架构(Soundbar 为主机)
7.1 系统总体
Soundbar 作主机 / 主时钟:抓 PCM、(后续)按声道拆分发送、收集音箱反馈、计算延迟补偿;本地喇叭和视频去「等」最慢的无线音箱。
Multi-Room Demo 时:短期 stereo 整包分发(Snapcast),不强制拆 LS/RS/LFE;图中的后置 / Sub 能力留给 Multichannel 阶段。
7.2 信号链与延迟闭环
| 步骤 | 做什么 |
|---|---|
| 解码后 PCM | TV / App 源经 MS12 |
| HAL 抓取 | 加时间戳 |
| 拆声道 · 打包 | Multi-Room Demo 可先整包 stereo;HT 再拆声道 |
| Wi-Fi | UDP / Snapcast |
| Jitter Buffer | 抗抖动 |
| ALSA | 按时刻输出 |
原则: 让画面与本地喇叭去「等」最慢的无线音箱,保证音画 / 左右 / 前后一致。
7.3 三层架构
| 层面 | 职责 | Soundbar | Speaker |
|---|---|---|---|
| 控制面 | 发现、配对、音量、session | App + 控制服务 | DeviceAgent |
| 媒体面 | PCM 传输、丢包统计 | 抓 PCM + 打包 + 发送(Demo: Snapcast) | 收包 + Jitter Buffer |
| 同步面 | 多 speaker 对齐 | SyncController + 延迟补偿 | 按时间戳播放 + 反馈 |
八、配网怎么走(Demo)
Soundbar 已连 Wi-Fi
→ 蓝牙搜索 Speaker(配网模式)
→ 点击配对,把 Wi-Fi 信息传给 Speaker
→ Speaker 入网
→ Soundbar / Speaker 信息上报 Skway
→ 手机 App 可发现并控制设备组
Soundbar 自身也要完成可被 Skway / 手机 App 管理的配网上报。触发方式可以是:摇一摇 / 按键 / App。
九、分阶段路线
| 阶段 | 交付物 | 验收标准 |
|---|---|---|
| Phase 0 | HAL→(Snapcast/UDP)→ALSA 原型 | 30min 不断音;start/stop/flush 正常 |
| Phase 1 | App 发现/配对;Multi-Room stereo;兼 2.1/3.1 | 设备间 sync <20ms;配对 OK |
| Phase 2 | video delay 闭环 | 口型无明显偏移 |
| Phase 3 | 5.1 多 speaker | 声道正确;sync <5ms |
| Phase 4 | 量产 | OTA / 弱网恢复 / SELinux / DRM 策略 |
十、一句话结论
Aetheryal 已验证「Soundbar 抓 PCM + 延迟闭环」可行;Demo 用 Snapcast 先跑通 Multi-Room(配网 → AIDL → 分发 → 从机出声);再替换黑盒、产品化 2.1/3.1,并演进到口型同步、5.1 与量产。
评论
还没有评论,来做第一个吧
读完了不评论,作者会以为你在沉思