Stream Probe introduces HLS live stream playback with DVR controls in this iOS update, letting users pause, rewind, and scrub live video alongside a real-time LIVE badge indicator.
TL;DR
The iOS player now handles live HLS streams end to end. DVR seekable ranges flow from PlayerEngine through PlayerViewModel and into a new scrubber UI. A LIVE badge shows real-time playback status and snaps back when the user returns to the live edge.
What's New
- DVR seekable-range publisher exposed via the
PlayerEngineprotocol, surfacing the live window boundaries from AVPlayer - Live/DVR state tracking in
PlayerViewModel, including scrub position math relative to the seekable range - LIVE badge in the player UI that reflects whether playback is at the live edge or in DVR offset mode
- DVR scrubber UI component for seeking within the live window, distinct from the standard VOD progress bar
- Live HLS catalog entries added to the demo app so you can test against real streams out of the box
- Design specs and implementation plans committed alongside the code for future reference
How to Use
No API changes required for existing VOD setups. For live streams, load an HLS live URL into the player as you would any other stream. The PlayerEngine will automatically detect the live window and publish seekable ranges. PlayerViewModel picks these up and activates the DVR scrubber and LIVE badge in the UI.
To check live state programmatically:
// PlayerViewModel exposes a published property
@Published var isAtLiveEdge: Bool
@Published var seekableRange: CMTimeRange?
Returning to the live edge after scrubbing snaps playback back and re-activates the LIVE badge.