聊天消息同步重播 — 回放时看当时的弹幕
聊天重播概述
聊天消息同步重播是 Twire VOD 回放的增强功能——在观看直播回放的同时,同步显示当时直播间观众发送的聊天消息,让回放体验更接近当时的实时观看场景。GitHub README 里明确列出了 "VODs with chat replay" 作为核心功能。
聊天消息的加载方式
进入 VOD 回放后,Twire 在加载视频流的同时异步拉取对应的聊天消息历史。消息从 Twitch API 获取,格式为 JSON 数据,包含消息时间戳、发送者、表情等信息。拉取完成后按时间戳排序,在播放器界面的聊天区域实时显示——视频画面推进到哪个时间点,聊天区域就同步显示当时的弹幕。
聊天回放与实时聊天的差异
实时观看直播时聊天消息是即时推送、需要登录才能发送消息;VOD 回放时聊天消息是一次性拉取、只读不发——你能看到当时所有人发的消息,但自己发不了新消息。表情显示(BTTV/FFZ/7TV)和实时观看时完全一致,因为表情渲染走的是同一套代码。
聊天回放的时间对齐
聊天消息的时间戳和视频流的时间戳由 Twitch 服务器保证同步,Twire 不需要额外做对齐处理。拖拽进度条时,聊天区域会立即清空并重新加载新位置的聊天消息,通常在 1 到 2 秒内完成重新定位。
聊天回放的可用性
聊天回放功能依赖 Twitch API 提供的 VOD 消息端点。如果主播的直播没有产生聊天数据(比如只有主播一个人在直播),或者 Twitch API 返回错误,聊天区域可能为空。这是正常现象,不影响视频回放的正常播放。
聊天回放的性能影响
加载大量聊天消息会增加一点内存和 CPU 消耗——热门直播可能有数万条消息。Twire 做了滚动窗口优化:只渲染当前屏幕可见区域的消息,离开视野的自动回收,避免长列表卡顿。