我正在尝试检测PHAsset的子类型。
asset.subtypes.rawvalue -> UInt
我发现了.video(rawValue:0)和photoLive(rawValue:8)子类型的含义,但是我有带HDR选项的livePhoto,而子类型rawavlue是10,我找不到该值的含义。 有人具有PHAsset子类型的所有rawValue含义吗? 谢谢
答案 0 :(得分:0)
根据documentation of PHAssetMediaSubtype
:
媒体子类型是位掩码值,因此您可以使用 按位运算符以测试多个子类型。
该定义有助于:
typedef enum PHAssetMediaSubtype : NSUInteger {
PHAssetMediaSubtypeNone = 0,
PHAssetMediaSubtypePhotoPanorama = (1UL << 0),
PHAssetMediaSubtypePhotoHDR = (1UL << 1),
PHAssetMediaSubtypePhotoScreenshot = (1UL << 2),
PHAssetMediaSubtypePhotoLive = (1UL << 3),
PHAssetMediaSubtypePhotoDepthEffect = (1UL << 4),
PHAssetMediaSubtypeVideoStreamed = (1UL << 16),
PHAssetMediaSubtypeVideoHighFrameRate = (1UL << 17),
PHAssetMediaSubtypeVideoTimelapse = (1UL << 18)
} PHAssetMediaSubtype;
因此,如果子类型为10,则10为8 + 2(唯一的可能的“子值”),值8({.photoLive
)和2(.HDR)都是)。