Je reçois le message d'erreur - Utilisation de l'identifiant non déclaré 'kUTTypeMovie'
dans le code ci-dessous -
-(IBAction)selectVideo:(id)sender {
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
imagePicker.mediaTypes = [[NSArray alloc] initWithObjects:(NSString *)kUTTypeMovie, nil];
imagePicker.delegate = self;
[self presentModalViewController:imagePicker animated:YES];
}
Qu'est ce qui ne va pas avec ça?
Vous devez ajouter le cadre MobileCoreServices au projet, puis l'importer:
Objectif c:
#import <MobileCoreServices/MobileCoreServices.h>
Cela fera disparaître le problème.
Swift 4:
import MobileCoreServices
Rapide
import MobileCoreServices
Objectif c
#import <MobileCoreServices/MobileCoreServices.h>
Je suis novice en développement iOS et xcode et j'ai passé un certain temps à essayer de comprendre pourquoi l'importation ne fonctionnait pas. Après avoir résolu le problème avec un membre plus expérimenté de mon équipe, j'ai découvert qu'il fallait non seulement inclure
#import <MobileCoreServices/MobileCoreServices.h>
mais vous devez également lier les fichiers binaires à la bibliothèque de la structure MobileCoreServices aux phases de construction de votre projet.
J'espère que cela t'aides! J'avais besoin de cette information quand je faisais ça.
Swift 4 answer, avec code de caméra vidéo et délégué imagePicker:
import MobileCoreServices
Caméra vidéo ouverte
@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)
}
Délégué ImagePicker:
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>
import MobileCoreServices
pour Swift@import MobileCoreServices;
pour l’objectif C