从 PHAsset 获取视频时如何检测视频是不是为横向/纵向?
Posted
技术标签:
【中文标题】从 PHAsset 获取视频时如何检测视频是不是为横向/纵向?【英文标题】:How to detect if video is Landscape/portrait when fetched from PHAsset?从 PHAsset 获取视频时如何检测视频是否为横向/纵向? 【发布时间】:2016-06-02 15:47:58 【问题描述】:我正在从 PHAsset 获取视频,因此用户可以选择视频并导入以执行编辑。但是用户应该只能选择横向视频,如果用户选择纵向视频,她/他会收到警告消息,指出其纵向视频因此无法导入编辑。
这样做的一种方法是从 PHFetchResults 的 URL 创建 AVAsset,然后检查一个preferedTransform,但这将是非常昂贵的操作,对吗?
有没有办法在不创建 AVasset 的情况下做到这一点?
【问题讨论】:
我觉得没有你想象的那么贵。 嗯,我在想我可以检查缩略图的图像方向来识别视频是否是纵向的,这不需要制作视频。 【参考方案1】:https://developer.apple.com/library/ios/documentation/Photos/Reference/PHAsset_Class/
var pixelWidth: Int get
var pixelHeight: Int get
资产的图像或视频数据的宽度和高度(以像素为单位)。 (只读)
如果资产的内容有 已编辑,此属性描述当前版本的大小 的资产。可用性 iOS(8.0 及更高版本)
if asset!.pixelHeight > asset!.pixelWidth
// will be portrait video or Image
适用于 iOS 8.0 及更高版本。
【讨论】:
这并不能告诉你它是左还是右。以上是关于从 PHAsset 获取视频时如何检测视频是不是为横向/纵向?的主要内容,如果未能解决你的问题,请参考以下文章
尝试从 PHAsset 获取 AVAssetExportSession 的输出时得到空结果