Запись видео в iPhone: "cameraCaptureMode 1 недоступен, потому что mediaTypes содержит public.movie"
Я пытаюсь записать видео.
Сообщение, которое я получил, это следующий код на устройстве:
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePickerController.allowsEditing = YES;
imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;
imagePickerController.delegate = self;
[self presentModalViewController:imagePickerController animated:YES];
[imagePickerController release];
Любые идеи? Я думаю, что видео должно быть очень легко. Когда я запускаю приложение "Камера" телефона, у меня есть выбор между видео и изображением. Должен ли он быть доступен и для моего приложения?
10 раз заранее,
Danail
Ответы
Ответ 1
Проблема заключалась в том, как я пытался установить режим в режим видео.
Вместо этого:
imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;
Я изменил его на это:
imagePickerController.mediaTypes =
[NSArray arrayWithObject:(NSString *)kUTTypeMovie];
и он работал.
Ответ 2
Добавьте к вышеуказанным ответам, как отметил Мико, вам нужно добавить MobileCoreServices.framework в свой проект и указать его в свой imagePickerController.
Для тех, кто хочет переключиться под панелью инструментов в режиме просмотра изображений, просто установите делегат mediaTypes следующим образом:
imagePC.mediaTypes = [NSArray arrayWithObjects:(NSString *)kUTTypeMovie, (NSString *)kUTTypeImage, nil];
Теперь вы можете иметь как снятие неподвижных изображений, так и видео, наслаждайтесь!!!
Ответ 3
Для Swift 3.0 вам нужно добавить строку ниже, чтобы поддерживать как фото, так и видео
import MobileCoreServices
imagePicker.mediaTypes = [kUTTypeMovie as String, kUTTypeImage as String]
Ответ 4
И если вы работаете со Swift, вам придется добавить MobileCoreServices.framework, а также следующий Модуль, где вы пытаетесь записать видео!
import MobileCoreServices
Тогда в целом ваш код будет что-то вроде этого
var imag = UIImagePickerController()
imag.delegate = self
imag.sourceType = UIImagePickerControllerSourceType.Camera;
imag.cameraDevice = UIImagePickerControllerCameraDevice.Rear //or Front
imag.mediaTypes = [kUTTypeMovie];
self.presentViewController(imag, animated: true, completion: nil)
Ответ 5
Этот метод откроет библиотеку видео в моем ipod 4. Не используйте видеокамеру моего устройства.
Кто-нибудь скажет мне, как разобраться с проблемой, я попробовал оба способа, описанные выше.
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePickerController.allowsEditing = YES;
imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;
imagePickerController.delegate = self;
[self presentModalViewController:imagePickerController animated:YES];
[imagePickerController release];
и
imagePickerController.mediaTypes =
[NSArray arrayWithObject:(NSString *)kUTTypeMovie];
Спасибо за вашу помощь.
Ответ 6
введите код здесь. Попробуйте это, это откроет видеокамеру
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
UIImagePickerController *tmp_picker=[[UIImagePickerController alloc]init];
tmp_picker.sourceType=UIImagePickerControllerSourceTypeCamera;
tmp_picker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie];
tmp_picker.delegate=self;
[self presentModalViewController:tmp_picker animated:YES];
[tmp_picker release];
NSLog(@"button index is %i",buttonIndex);
}
Ответ 7
Xcode 9 - Swift 4.x:
Соблюдайте порядок этих утверждений:
imagePickerController.mediaTypes = [kUTTypeMovie as String]
imagePickerController.cameraCaptureMode = .video
И вы не забыли добавить в info.plist:
![введите описание изображения здесь]()