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

发布于 2024-09-18 21:43:45 字数 610 浏览 4 评论 0原文

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

UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePickerController.allowsEditing = YES;
imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;
imagePickerController.delegate = self;
[self presentModalViewController:imagePickerController animated:YES];
[imagePickerController release];

有什么想法吗?我认为拍摄视频应该很容易。当我启动手机的“相机”应用程序时,我可以在视频和图片之间进行选择。它不应该也适用于我的应用程序吗?

I tried to record a video.
The message I got is from the following code on the device:

UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePickerController.allowsEditing = YES;
imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;
imagePickerController.delegate = self;
[self presentModalViewController:imagePickerController animated:YES];
[imagePickerController release];

Any ideas? I think it should be really easy to take a video. When I start the "Camera" app of the phone I have the choice between video and picture. Shouldn't it be available for my app also?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

落墨 2024-09-25 21:43:45

问题是我尝试将模式设置为视频模式的方式。

我没有使用这个:而是

imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;

将其更改为:

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

并且它有效。

The problem was the way I was trying to set the mode to video mode.

Instead of using this:

imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;

I changed it to this:

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

and it worked.

扛刀软妹 2024-09-25 21:43:45

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

import MobileCoreServices

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

For Swift 3.0, you have to add below line to support both photo and video

import MobileCoreServices

  imagePicker.mediaTypes = [kUTTypeMovie as String, kUTTypeImage as String]
天荒地未老 2024-09-25 21:43:45

添加到上面的答案,正如 Micko 提到的,您需要在项目中添加 MobileCoreServices.framework 并在 imagePickerController 中引用它。
如果你想在图像拍摄视图的工具栏下有一个开关,只需如下设置 mediaTypes delegate 即可:

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

现在,你可以同时进行静态图像拍摄和视频拍摄,享受吧!

Add to above answers, as Micko mentioned, you need to add MobileCoreServices.framework in your project and ref it in your imagePickerController.
For those who want to have a switch under the toolbar in your image shooting view, just set the mediaTypes delegate as follows:

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

Now, you can have both still image taking and video taking, enjoy!!!

愛放△進行李 2024-09-25 21:43:45

Xcode 9 - Swift 4.x

注意这些语句的顺序:

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

并且记得添加到 info.plist:

在此处输入图像描述

Xcode 9 - Swift 4.x:

Take care about the order of these statements:

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

And you remember to add to info.plist:

enter image description here

愁杀 2024-09-25 21:43:45

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

And if you are working with Swift, then you will have to add MobileCoreServices.framework as well as the following Module where you are trying to record the video!

import MobileCoreServices

Then overall your code will something like this

    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)
也只是曾经 2024-09-25 21:43:45

此方法将打开我的 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];

您的帮助。

This method will opens the library of videos in my ipod 4.Not the video camera of my device.

Will someone tell me how to sort out from the problem ,I have tried the both ways described above.

UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
    imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
    imagePickerController.allowsEditing = YES;
    imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;
    imagePickerController.delegate = self;
    [self presentModalViewController:imagePickerController animated:YES];
    [imagePickerController release];

and

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

Thanks for your help.

短叹 2024-09-25 21:43:45

在此处输入代码请尝试此操作,这将打开摄像机

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


                }

enter code herePlease try this,this will opens the video camera

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


                }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文