我正在使用 PH 照片库来获取所有照片和视频
I am using PH photo library to get all the photos and videos
我正在将所有照片保存到 uicollectionview。但它保存在 uiimageview 中。当文件是视频类型时,我需要显示一个播放按钮。
有没有办法在获取时找到媒体的类型?
EveryPHAsset
有一个 属性 mediaType 即 PHAssetMediaType
。它显示它是什么类型:图像、视频、音频或最终未知。
还有一个 mediaSubtypes 属性 用于获取有关资产的一些更具体的信息(高帧率视频、延时视频等)。
所以基本上,当您在集合视图中展开结果时,您会将图像显示为缩略图,但是当您检查 mediaType 并且看到它是视频时,您可以决定如何处理它 - 要么准备一个播放器,要么出示另一个 view/view 控制器来播放该视频。
希望它能对您有所帮助,因为我不知道您是如何构建从照片库中提取内容的。
你可以用PHFetchResult
得到所有PHAsset
,改变PHAssetMediaType你可以得到不同的结果。
这里是获取所有视频的示例代码:
PHFetchResult *results = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeVideo options:nil];
NSMutableArray *temp = [NSMutableArray arrayWithCapacity:results.count];
[results enumerateObjectsUsingBlock:^(PHAsset *obj, NSUInteger idx, BOOL * _Nonnull stop) {
[temp addObject:obj];
}];
我正在将所有照片保存到 uicollectionview。但它保存在 uiimageview 中。当文件是视频类型时,我需要显示一个播放按钮。 有没有办法在获取时找到媒体的类型?
EveryPHAsset
有一个 属性 mediaType 即 PHAssetMediaType
。它显示它是什么类型:图像、视频、音频或最终未知。
还有一个 mediaSubtypes 属性 用于获取有关资产的一些更具体的信息(高帧率视频、延时视频等)。
所以基本上,当您在集合视图中展开结果时,您会将图像显示为缩略图,但是当您检查 mediaType 并且看到它是视频时,您可以决定如何处理它 - 要么准备一个播放器,要么出示另一个 view/view 控制器来播放该视频。
希望它能对您有所帮助,因为我不知道您是如何构建从照片库中提取内容的。
你可以用PHFetchResult
得到所有PHAsset
,改变PHAssetMediaType你可以得到不同的结果。
这里是获取所有视频的示例代码:
PHFetchResult *results = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeVideo options:nil];
NSMutableArray *temp = [NSMutableArray arrayWithCapacity:results.count];
[results enumerateObjectsUsingBlock:^(PHAsset *obj, NSUInteger idx, BOOL * _Nonnull stop) {
[temp addObject:obj];
}];