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

Dan*_*ail 26 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];
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我认为录制视频应该很容易.当我启动手机的"相机"应用程序时,我可以选择视频和图片.它不应该也适用于我的应用程序吗?

提前10倍,Danail

Dan*_*ail 48

问题是我试图将模式设置为视频模式的方式.

而不是使用这个:

imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;
Run Code Online (Sandbox Code Playgroud)

我改成了这个:

imagePickerController.mediaTypes =  
        [NSArray arrayWithObject:(NSString *)kUTTypeMovie];
Run Code Online (Sandbox Code Playgroud)

它起作用了.

  • 似乎是陈述顺序的问题.以下内容适用于我(导入MobileCoreServices框架后).`imagePickerController.mediaTypes = [NSArray arrayWithObjects:(NSString*)kUTTypeMovie,nil]; imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;` (7认同)
  • 感谢这个信息.在我导入"MobileCoreServices"-Framework后,它为我做了这些;-) (2认同)

Hir*_*hal 10

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

import MobileCoreServices

  imagePicker.mediaTypes = [kUTTypeMovie as String, kUTTypeImage as String]
Run Code Online (Sandbox Code Playgroud)


小智 7

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

imagePC.mediaTypes = [NSArray arrayWithObjects:(NSString *)kUTTypeMovie, (NSString *)kUTTypeImage, nil];
Run Code Online (Sandbox Code Playgroud)

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


Ale*_*ano 5

Xcode 9 - Swift 4.x

请注意这些语句的顺序:

imagePickerController.mediaTypes = [kUTTypeMovie as String]
imagePickerController.cameraCaptureMode = .video
Run Code Online (Sandbox Code Playgroud)

并且你记得添加到info.plist:

在此输入图像描述