2.0 KiB
2.0 KiB
演唱会播放同步协议
本文档定义 PC 同步播放器如何向 AI球设备同步 content_id、position_ms、state 和 speed。
1. 目标
- 支持多台 AI球在演唱会或活动现场按同一时间轴执行应援脚本。
- 支持播放、暂停、停止、跳转和倍速等基础同步控制。
- 允许设备端根据本地资源包和应援脚本独立执行动作。
2. 同步消息
{
"content_id": "concert-demo-001",
"state": "playing",
"position_ms": 30000,
"speed": 1.0,
"sent_at_ms": 1710000000000
}
3. 字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
content_id |
string | 当前曲目、节目或应援内容 ID。 |
state |
string | playing、paused、stopped 之一。 |
position_ms |
integer | 当前内容播放进度,单位毫秒。 |
speed |
number | 播放速度,默认 1.0。 |
sent_at_ms |
integer | PC 上位机发送时间戳,用于延迟估计。 |
4. 设备端处理流程
- 校验
content_id是否存在于本地资源包和应援脚本中。 - 根据
state进入播放、暂停或停止逻辑。 - 使用
position_ms对齐本地脚本时间轴。 - 根据
speed调整后续动作触发时间。 - 若资源缺失或状态冲突,返回错误码并保持安全状态。
5. 同步策略初稿
- PC 上位机应周期性发送同步消息,例如每 500ms 一次。
- 设备端可根据最近一次消息校准本地播放进度。
- 当进度跳变超过阈值时,设备端应跳转到新的
position_ms。 - 当状态变为
stopped时,设备端应停止当前表现并清理临时动作。
6. 与应援脚本关系
- 应援脚本定义
time_ms和动作内容。 - 同步协议只负责广播当前播放位置和状态。
- 设备端根据同步位置选择应执行的脚本动作。
7. 待确认问题
- 多设备同步精度目标,例如 50ms、100ms 或 200ms。
- 时钟同步方案是否需要 NTP、主机时间戳或设备本地校准。
- 丢包、断连和重连后的补偿策略。