Resolution in Swift 3:
func resolutionSizeForLocalVideo(url:NSURL) -> CGSize? {
guard let track = AVAsset(URL: url).tracksWithMediaType(AVMediaTypeVideo).first else { return nil }
let size = CGSizeApplyAffineTransform(track.naturalSize, track.preferredTransform)
return CGSize(width: fabs(size.width), height: fabs(size.height))
}
For Swift 4:
func resolutionSizeForLocalVideo(url:NSURL) -> CGSize? {
guard let track = AVAsset(url: url as URL).tracks(withMediaType: AVMediaType.video).first else { return nil }
let size = track.naturalSize.applying(track.preferredTransform)
return CGSize(width: fabs(size.width), height: fabs(size.height))
}
Solutions without preferredTransform
do not return correct values for some videos on the latest devices!
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…