Reputation: 763
I have UIImagePickerController which is choosing photo or video from gallery, after selecting item, I want to determine which one is chosen, photo or video
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
let mediaType = info[UIImagePickerControllerMediaType]
}
I've found this: How to select any Video or Movie file from UIImagePickerController
but could not translate to Swift:
if (CFStringCompare ((__bridge CFStringRef) mediaType, kUTTypeMovie, 0) == kCFCompareEqualTo) {
}
thank you in advance
Upvotes: 5
Views: 14440
Reputation: 630
> Swift 4
Override didFinishPickingMediaWithInfo
like this:
public func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
guard let mediaType = info[UIImagePickerController.InfoKey.mediaType] as? String else {return}
switch mediaType {
case kUTTypeMovie:
//handle movie here
case kUTTypeImage:
//handle image here
}}
Upvotes: 0
Reputation: 3257
Swift 4. Use this:
guard info[UIImagePickerControllerMediaType] != nil else { return }
let mediaType = info[UIImagePickerControllerMediaType] as! CFString
switch mediaType {
case kUTTypeImage:
break
case kUTTypeMovie:
break
case kUTTypeLivePhoto:
break
default:
break
}
Upvotes: 5
Reputation: 805
Use this
if let mediaType = info[UIImagePickerControllerMediaType] as? String {
if mediaType == "public.image" {
print("Image Selected")
}
if mediaType == "public.movie" {
print("Video Selected")
}
}
Upvotes: 12
Reputation: 763
if mediaType.isEqualToString(kUTTypeImage as String){
}
Worked :)
Upvotes: 1