web-dev-qa-db-ja.com

iPhoneビデオ録画:「mediaTypesにpublic.movi​​eが含まれているため、cameraCaptureMode1は使用できません」

私はビデオを録画しようとしています。私が受け取ったメッセージは、デバイス上の次のコードからのものです。

    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倍、ダニール

26
Danail

問題は、モードをビデオモードに設定しようとした方法でした。

これを使用する代わりに:

imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;

私はそれをこれに変更しました:

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

そしてそれはうまくいった。

48
Danail

Swift 3.0の場合、写真とビデオの両方をサポートするには、以下の行を追加する必要があります

import MobileCoreServices

  imagePicker.mediaTypes = [kUTTypeMovie as String, kUTTypeImage as String]
10
Hiren Panchal

上記の回答に加えて、Mickoが述べたように、プロジェクトにMobileCoreServices.frameworkを追加し、それをimagePickerControllerで参照する必要があります。画像撮影ビューのツールバーの下にスイッチが必要な場合は、mediaTypesデリゲートを次のように設定するだけです。

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

今、あなたは静止画撮影とビデオ撮影の両方を持つことができます、楽しんでください!!!

7
Jaylee

また、Swiftを使用している場合は、MobileCoreServices.frameworkと、ビデオを録画しようとしている次のModuleを追加する必要があります。

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)
3
Developer

Xcode 9-Swift 4.x

これらのステートメントの順序に注意してください。

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

そして、あなたはinfo.plist:に追加することを忘れないでください

enter image description here

2

ここにコードを入力してくださいこれを試してください、これはビデオカメラを開きます

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


                }
1
Harjot Singh

この方法では、iPod4でビデオのライブラリが開きます。デバイスのビデオカメラではありません。

誰かが問題を解決する方法を教えてもらえますか、私は上記の両方の方法を試しました。

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

ご協力いただきありがとうございます。

1
Harjot Singh