Я играю поток HLS, используя AVPlayer
API в моем приложении.Я хотел бы иметь возможность обнаруживать ситуации, когда воспроизведение видео останавливается из-за недостаточной пропускной способности сети или низкого качества соединения.
Существует ли какой-либо надежный способ обнаружения, если воспроизведение видео действительно воспроизводится на экране нормально?
Во время моего тестирования я видел ситуации, когда все следующие проверки сообщают о статусах OK, несмотря на то, что воспроизведение видео фактически застыло на экране:
AVPlayer.status = .readyToPlay
AVPlayer.timeControlStatus = .playing
AVPlayerItem.status = .readyToPlay
AVPlayerItem.isPlaybackBufferEmpty = false
AVPlayerItem.isPlaybackLikelyToKeepUp = true
+, а также addBoundaryTimeObserver
обратные вызовыбыли уволены.
Некоторые из них в конечном итоге становятся отрицательными, но только после задержки.
Существует ли какой-либо 100% надежный способ обнаружения, если видео действительно воспроизводится на устройстве?