Ответ 1
Вы должны добавить фреймворк MobileCoreServices в проект, а затем импортировать его:
Цель C:
#import <MobileCoreServices/MobileCoreServices.h>
Это заставит проблему уйти.
Свифт 4:
import MobileCoreServices
Я получаю сообщение об ошибке - Использование необъявленного идентификатора 'kUTTypeMovie'
в приведенном ниже коде -
-(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];
}
Что с этим не так?
Вы должны добавить фреймворк MobileCoreServices в проект, а затем импортировать его:
Цель C:
#import <MobileCoreServices/MobileCoreServices.h>
Это заставит проблему уйти.
Свифт 4:
import MobileCoreServices
быстро
import MobileCoreServices
цель c
#import <MobileCoreServices/MobileCoreServices.h>
Я новичок в iOS-разработке и xcode и потратил некоторое время, пытаясь выяснить, почему просто импорт не работал. После выяснения проблемы с более опытным членом моей команды я узнал, что вы не только должны включать
#import <MobileCoreServices/MobileCoreServices.h>
но вы также должны привязать двоичные файлы к библиотеке инфраструктуры MobileCoreServices к этапам сборки вашего проекта.
Надеюсь, это поможет! Я обязательно нуждался в этой информации, когда я это делал.
Ответ Swift 4, с кодом видеокамеры и делегатом imagePicker:
import MobileCoreServices
Открытая видеокамера
@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:
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>
Если вы используете SWIFT
import MobileCoreServices
Или для Objective-C
#import <MobileCoreServices/MobileCoreServices.h>
import MobileCoreServices
для Swift @import MobileCoreServices;
для цели с