I submitted a report via the feedback assistant (FB9221518), and have narrowed down the STR:
- Play an HLS item in AVPlayer or AVQueuePlayer, setting
preferredForwardBufferDuration
to 20.0 - Pause the item after a second or two, and wait in real time for the item's total duration to elapse
- The currently paused item will no longer be playable, and the
actionAtItemEnd
behavior will trigger, even though the item hasn't reached its end, having remained paused near the beginning of playback.
We found that setting the preferredForwardBufferDuration
to 20.0 was required in order to reproduce the issue. When setting to 0.0 the player behaves as expected and the bug does not manifest.
This occurs for both AVPlayer and AVQueuePlayer, and the exact manifestation of the bug depends on the actionAtItemEnd
property.
For AVQueuePlayer, it'll either advance to the next item (or nil), or the paused frame still will remain frozen on the AVPlayerLayer.
For AVPlayer, the paused frame will remain frozen. In any scenario, the item that was paused when the item's duration had elapsed in real time would no longer be playable.