从 PHAsset 获取视频时如何检测视频是否为 Landscape/portrait?

How to detect if video is Landscape/portrait when fetched from PHAsset?

我正在从 PHAsset 中获取视频,以便用户可以选择视频并导入以执行编辑。但是用户应该只能 select 横向视频,如果用户 select 纵向视频, she/he 会收到警告消息说它的纵向视频因此无法导入进行编辑。

一种方法是从 PHFetchResults 的 URL 创建 AVAsset,然后检查 preferedTransform,但这样做的成本非常高吗?

有没有办法在不创建 AVasset 的情况下做到这一点?

https://developer.apple.com/library/ios/documentation/Photos/Reference/PHAsset_Class/

var pixelWidth: Int { get }

var pixelHeight: Int { get }

The width and height, in pixels, of the asset’s image or video data. (read-only)

If the asset’s content has been edited, this property describes the size of the current version of the asset. Availability iOS (8.0 and later)

if asset!.pixelHeight > asset!.pixelWidth {
 // will be portrait video or Image
}

在 iOS 8.0 及更高版本中可用。