一起听会话候选共享——房主解析结果临时缓存让听众直接取得
为什么需要候选共享
正常流程下,每个成员各自用自己的设备和网络解析当前曲目的播放地址。但有时房主已经解析出可用的候选,而听众因为网络或地区原因无法拿到。候选共享让听众可以直接复用房主已经解析好的候选。
开启后发生什么
开启会话候选共享后:
- Worker(Durable Object)会缓存房主当前曲目的播放候选
- 最多保留 3 条经校验的候选
- 缓存是临时的、会话级的——切歌就清空,关闭共享就清空,不会写入歌曲元数据或离线缓存
听众的回退策略
听众的回退分两步:
- 先按本机音质策略解析——听众自己先尝试获取播放地址,优先使用本机音质设置选择的版本
- 失败后才在本次会话内回退——本机解析失败时,在会话内依次尝试 Durable Object 缓存的房主候选
候选不会持久化
会话候选共享的设计关键点:
- 候选不会写入歌曲的离线缓存
- 候选不会写入歌曲元数据
- 切歌后候选缓存立即清空
- 关闭共享模式后所有已缓存候选清空
不共享的场景
以下条件下候选共享不会工作:
- 当前曲目是本地音频(本地音频不支持建房,也不会产生可共享的候选)
- 房主未开启共享
- Durable Object 不可用或网络异常