2010-09-11 6 views
23

Ich versuche ein Video aufzunehmen. Die Botschaft, die ich bekam ist aus dem folgenden Code auf dem Gerät:iPhone Videoaufnahme: "cameraCaptureMode 1 nicht verfügbar, da mediaTypes public.movie enthält"

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

Irgendwelche Ideen? Ich denke, es sollte wirklich einfach sein, ein Video zu machen. Wenn ich die "Kamera" -App des Telefons starte habe ich die Wahl zwischen Video und Bild. Sollte es nicht auch für meine App verfügbar sein?

10x im Voraus, Danail

Antwort

37

Das Problem war die Art, wie ich den Modus in den Videomodus zu setzen versuchte.

Statt diese verwenden:

imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo; 

Ich änderte es dazu:

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

und es funktionierte.

+2

Dankten für diese Info hinzuzufügen. Das habe ich nach dem Import des "MobileCoreServices" -Frameworks gemacht ;-) – Micko

+1

Was ist der Unterschied zwischen 'mediaTypes' und' cameraCaptureMode'? – user102008

+7

schien ein Problem mit der Reihenfolge der Aussagen. Folgendes funktionierte für mich (nach dem Import des MobileCoreServices-Frameworks). 'imagePickerController.mediaTypes = [NSArray arrayWithObjects: (NSString *) kUTTypeMovie, nil]; imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo; ' –

1

Diese Methode öffnet die Bibliothek von Videos in meinem iPod 4.Not die Videokamera von meinem Gerät.

Will mir jemand sagen, wie ich das Problem lösen kann, habe ich beide oben beschriebenen Wege versucht.

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

und

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

Vielen Dank für Ihre Hilfe.

1

Code eingeben dieses herePlease versuchen, öffnet dies wird die Videokamera

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

oben Antworten hinzufügen, wie Micko erwähnt, müssen Sie MobileCoreServices.framework in Ihrem Projekt und ref es in Ihrem imagePickerController hinzuzufügen. Für diejenigen, die einen Schalter unter der Symbolleiste in Ihrer Bildaufnahme Blick haben möchten, setzen Sie einfach den mediaTypes Delegierten wie folgt:

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

Nun, ihr beide noch Bildaufnahme und Videoaufnahme haben, genießen !!!

+0

Es half .... Danke :) –

3

Und wenn Sie mit Swift arbeiten, dann müssen Sie MobileCoreServices.framework sowie das folgende Modul hinzufügen, wo Sie versuchen, das Video aufzunehmen!

import MobileCoreServices 

Dann Gesamt-Code wird so etwas wie dieses

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) 
+0

imag.mediaTypes = [kUTTypeMovie] ersetzen Sie die Zeile mit imag.mediaTypes = [kUTTypeMovie als String] in Swift 3.0 – emraz

7

für Swift 3.0, haben Sie unter Zeile hinzufügen sowohl Foto- und Video-Unterstützung

import MobileCoreServices 

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

Xcode 9 - Schnell 4.x:

Achten Sie darauf, über die Reihenfolge dieser Aussagen:

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

Und Sie erinnern sich an info.plist:

enter image description here