I've witnessed that sometimes seeking back over content that was already played does not lead to replaying the event. My initial guess is that perhaps listening to changes in loadedTimeRanges on AVPlayerItem may not be enough. Perhaps a periodic time observer will also help but still isn't exact (and means we will regularly be repeating computations for no reason). Ideally there would be a way of knowing where seek events occurred. Perhaps we will just have to observe both rate and position updates and determine a criteria for what "looks like a seek". Investigation is necessary.
I've witnessed that sometimes seeking back over content that was already played does not lead to replaying the event. My initial guess is that perhaps listening to changes in
loadedTimeRanges
onAVPlayerItem
may not be enough. Perhaps a periodic time observer will also help but still isn't exact (and means we will regularly be repeating computations for no reason). Ideally there would be a way of knowing where seek events occurred. Perhaps we will just have to observe both rate and position updates and determine a criteria for what "looks like a seek". Investigation is necessary.