AVURLAsset获取视频大小

2024-03-03

这真是令人沮丧。我正在尝试获取 AVURLasset 的大小,但尽量避免naturalSize因为 Xcode 告诉我,这在 iOS5 中已被弃用。

但是:替代品是什么?

我找不到任何关于如何在不使用“naturalsize”的情况下获取视频尺寸的线索......


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))
}

对于斯威夫特 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))
}

解决方案不带preferredTransform对于最新设备上的某些视频,不会返回正确的值!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AVURLAsset获取视频大小 的相关文章

随机推荐