Я пытаюсь получить разрешение видео при игре в потоке hls. У меня типичная инициация игрока:
let urlAsset = AVURLAsset(URL: currentVideoUrl)
self.player=AVPlayer(playerItem: AVPlayerItem(asset:urlAsset))
.......
Я использую KVO, и я пытаюсь получить размер видео, когда получаю .ReadyToPlay status для AVPlayerItem:
func resolutionSizeForVideo() {
guard let videoTrack = self.player.currentItem?.asset.tracksWithMediaType(AVMediaTypeVideo).first else
{ return
}
let size = CGSizeApplyAffineTransform(videoTrack.naturalSize, videoTrack.preferredTransform)
let frameSize = CGSize(width: fabs(size.width), height: fabs(size.height))
print ("video size: \(frameSize)")
}
Проблема заключается в том, что trackWithMediaType() всегда возвращает пустой массив (но работает для файлов без потока, например, для .mov).
Как я могу получить размер (CGRect) видео HLS, воспроизводимого внутри AVPlayer?