Why does AVPlayer stop reporting seekableTimeRanges when currentTime falls out of a live DVR window?

For live content, if the user pauses playback and their current playhead falls out of the valid DVR window, AVPlayer will stop reporting seekableTimeRanges - why does this happen? Is there a workaround?

For example:

  1. Suppose we were streaming content with a 5 minute DVR window
  2. User pauses playback for 6 minutes
  3. Their current position is now outside of the valid seekable time range
  4. AVPlayer stops reporting seekableTimeRanges all together

This is problematic for two reasons:

  1. We have observed the AVPlayer generally becomes unresponsive when this happens. i.e. Any seek action will cause the player to freeze up
  2. Without knowing the seekable range, we dont know how to return the user to the live edge when they resume playback

Seems to be the same issue described in these threads: https://developer.apple.com/forums/thread/45850

https://developer.apple.com/forums/thread/45850

Hello @rdailey98-hbo,

Could you please provide us the stream that you are using?

Thanks in advance!

@wdkay The stream URL is DRM protected. Would providing the master manifest instead be useful in any way?

Is it expected behavior that AVPlayer would stop reporting seekableTimeRanges after being paused for an extended duration?

Why does AVPlayer stop reporting seekableTimeRanges when currentTime falls out of a live DVR window?
 
 
Q