I am getting the error message - Use of undeclared identifier \'kUTTypeMovie\'
in the below code -
-(IBAction)selectVideo:(id)sende
import MobileCoreServices
for swift
@import MobileCoreServices;
for objective c
You have to add the framework MobileCoreServices to the project, and then import it:
Objective C:
#import <MobileCoreServices/MobileCoreServices.h>
That will make the problem go away.
Swift 4:
import MobileCoreServices
I am a novice at iOS development and xcode and spent some time trying to find out why just the import was not working. After figuring out the problem with a more experienced member of my team I found out that not only must you include
#import <MobileCoreServices/MobileCoreServices.h>
but you must also link binaries to the library of the MobileCoreServices framework to the build phases of your project.
Hope this helps! I sure needed this info when I was doing this.
swift
import MobileCoreServices
objective c
#import <MobileCoreServices/MobileCoreServices.h>
Swift 4 answer, with video camera code and imagePicker delegate:
import MobileCoreServices
Open Video Camera
@IBAction func openVideoCamera(_ sender: Any) {
if UIImagePickerController.isSourceTypeAvailable(.camera) {
let imagePicker = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = .camera
imagePicker.mediaTypes = [kUTTypeMovie as String]
imagePicker.videoMaximumDuration = 10 // or whatever you want
imagePicker.videoQuality = .typeMedium
imagePicker.allowsEditing = false
present(imagePicker, animated: true, completion: nil)
}
ImagePicker delegate:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let mediaType = info[UIImagePickerControllerMediaType] as AnyObject
if mediaType as! String == kUTTypeMovie as String {
let videoURL = info[UIImagePickerControllerMediaURL] as? URL
print("VIDEO URL: \(videoURL!)")
}
dismiss(animated: true, completion: nil)
}
#import <MobileCoreServices/MobileCoreServices.h>