Próbuję uzyskać rozdzielczość wideo podczas odtwarzania strumienia hls. mam typowego odtwarzacza INIT:Jak uzyskać rozmiar wideo dla strumienia HLS wewnątrz AVPlayera?
let urlAsset = AVURLAsset(URL: currentVideoUrl)
self.player=AVPlayer(playerItem: AVPlayerItem(asset:urlAsset))
.......
używam KVO i staram się dostać rozmiar wideo, kiedy się stan .ReadyToPlay dla 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)")
}
Problemem jest to, że tracksWithMediaType() zawsze zwraca pusty array (ale działa dla plików innych niż strumień, np. dla .mov).
Jak mogę uzyskać rozmiar (CGRect) wideo HLS odtwarzanego w AVPlayer?
Co masz na myśli pod względem wielkości? Rzeczywista rozdzielczość wideo lub warstwa odtwarzacza? – JAL
Rozdzielczość wideo, tak (zredagowano pytanie). – DixieFlatline