Ich versuche Videoauflösung zu bekommen, wenn ich hl-Stream abspiele. Ich habe typische Spieler init:Wie erhält man die Videogröße für den HLS-Stream im AVPlayer?
let urlAsset = AVURLAsset(URL: currentVideoUrl)
self.player=AVPlayer(playerItem: AVPlayerItem(asset:urlAsset))
.......
Ich benutze KVO und ich versuche, Video-Größe zu erhalten, wenn i .ReadyToPlay Status für AVPlayerItem erhalten:
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)")
}
Das Problem ist, dass tracksWithMediaType() immer leer zurück Array (funktioniert aber für Nicht-Stream-Dateien, zB für .mov).
Wie kann ich die Größe (CGRect) des HLS-Videos im AVPlayer abspielen?
Was meinst du mit Größe? Die tatsächliche Auflösung des Videos oder das Rect der Player-Ebene? – JAL
Videoauflösung, ja (die Frage wurde bearbeitet). – DixieFlatline