iPhone视频录制:“cameraCaptureMode 1不可用,因为mediaTypes确实包含public.movi​​e”

时间:2010-09-11 12:08:34

标签: iphone uiimagepickercontroller

我尝试录制视频。 我收到的消息来自设备上的以下代码:

    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

7 个答案:

答案 0 :(得分:46)

问题在于我尝试将模式设置为视频模式。

而不是使用它:

imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;

我把它更改为:

imagePickerController.mediaTypes =  
        [NSArray arrayWithObject:(NSString *)kUTTypeMovie];

并且有效。

答案 1 :(得分:10)

  

对于Swift 3.0,您必须添加以下行以支持照片和视频

import MobileCoreServices

  imagePicker.mediaTypes = [kUTTypeMovie as String, kUTTypeImage as String]

答案 2 :(得分:7)

添加上面的答案,正如Micko所说,你需要在你的项目中添加MobileCoreServices.framework并在你的imagePickerController中引用它。 对于想要在图像拍摄视图中的工具栏下进行切换的用户,只需按如下方式设置mediaTypes委托:

imagePC.mediaTypes = [NSArray arrayWithObjects:(NSString *)kUTTypeMovie, (NSString *)kUTTypeImage, nil];

现在,您可以同时拍摄静态照片和视频,享受!!!

答案 3 :(得分:3)

如果您正在使用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)

答案 4 :(得分:2)

Xcode 9 - Swift 4.x

注意这些陈述的顺序:

imagePickerController.mediaTypes = [kUTTypeMovie as String]
imagePickerController.cameraCaptureMode = .video

您还记得添加到info.plist:

enter image description here

答案 5 :(得分:1)

此方法将在我的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 :(得分:1)

在这里输入代码请试试这个,这将打开摄像机

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);


                }