检查获取的对象是 Swift 中的图像还是视频
Check if fetched object is Image or Video in Swift
我想检查latestObject 是什么类型。这是一些代码:
allMedia = PHAsset.fetchAssetsWithOptions(fetchOptions)
let allPhotos = PHAsset.fetchAssetsWithMediaType(.Image, options: fetchOptions)
let allVideo = PHAsset.fetchAssetsWithMediaType(.Video, options: fetchOptions)
print("Found \(allMedia.count) media")
print("Found \(allPhotos.count) images")
print("Found \(allVideo.count) videos")
let latestObject: AnyObject! = allMedia.lastObject
// How to check what type latestObject is?
// I think something with mediaType but how is it exactly going?
You can check it in UIImagePickerController delegate method
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
if((info["UIImagePickerControllerMediaType"] as! String) == "public.movie" ){
// Video file
}
else{
// Image
}
}
你有没有尝试过这样的事情:
if let asset = allMedia.lastObject as? PHAsset {
switch asset.mediaType {
case .Image:
print("Image")
case .Video:
print("Video")
case .Audio:
print("Audio")
default:
print("Unknown")
}
}
PHFetchResult
中包含的每个元素都是一个 PHAsset
(在本例中)。
因此,通过转换为 PHAsset
,您可以访问 属性 mediaType
.
我想检查latestObject 是什么类型。这是一些代码:
allMedia = PHAsset.fetchAssetsWithOptions(fetchOptions)
let allPhotos = PHAsset.fetchAssetsWithMediaType(.Image, options: fetchOptions)
let allVideo = PHAsset.fetchAssetsWithMediaType(.Video, options: fetchOptions)
print("Found \(allMedia.count) media")
print("Found \(allPhotos.count) images")
print("Found \(allVideo.count) videos")
let latestObject: AnyObject! = allMedia.lastObject
// How to check what type latestObject is?
// I think something with mediaType but how is it exactly going?
You can check it in UIImagePickerController delegate method
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
if((info["UIImagePickerControllerMediaType"] as! String) == "public.movie" ){
// Video file
}
else{
// Image
}
}
你有没有尝试过这样的事情:
if let asset = allMedia.lastObject as? PHAsset {
switch asset.mediaType {
case .Image:
print("Image")
case .Video:
print("Video")
case .Audio:
print("Audio")
default:
print("Unknown")
}
}
PHFetchResult
中包含的每个元素都是一个 PHAsset
(在本例中)。
因此,通过转换为 PHAsset
,您可以访问 属性 mediaType
.