Salome Tsiramua
Salome Tsiramua

Reputation: 763

ios - Determine if image picker media type is video or photo

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

Answers (4)

Ememobong AkpanEkpo
Ememobong AkpanEkpo

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

Geoff H
Geoff H

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

Phani Bob
Phani Bob

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

Salome Tsiramua
Salome Tsiramua

Reputation: 763

if mediaType.isEqualToString(kUTTypeImage as String){

}

Worked :)

Upvotes: 1

Related Questions