We keep live playback at a consistent distance from the live edge using small playback
rate adjustments, with a target range based on recommendedTimeOffsetFromLive.
Since the live edge is not exposed by AVPlayer, we currently fall back to
seekableTimeRanges.end as our best approximation.
- What should be treated as the live edge, and how should the current live latency be measured?
- Is rate adjustment the appropriate way to hold a target latency? While playing above 1.0x,
the playhead can reach the seekable end, at which point
AVPlayerItemDidPlayToEndTimefires and halts the live stream. How can we guard against ? - Does any of this differ between regular HLS and LL-HLS?
A clear statement of the intended contract here would resolve a lot of uncertainty.
Thanks in advance.