2011-11-29 7 views
8

estoy teniendo éxito en la comprensión de cómo hacer una aplicación de cámara en mi viaje de aprendizaje :-)guardar un vídeo que grabo en mi aplicación

La única cosa que estoy atascado con se guarda un vídeo que he grabado. Puedo guardar una foto, pero lo mismo no funciona para videos.

Así que creo que casi lo tengo con la ayuda de iBrad Apps.

conseguido este código:

-(void)imagePickerController:(UIImagePickerController *)picker 
    didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType]; 

[self dismissModalViewControllerAnimated:YES]; 

if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) { 
    UIImage *image = [info 
         objectForKey:UIImagePickerControllerOriginalImage]; 

    imageView.image = image; 

    if (newMedia) 
     UIImageWriteToSavedPhotosAlbum(image, 
             self, 
             @selector(image:finishedSavingWithError:contextInfo:), 
             nil); 
} 
else{ 

    if ([mediaType isEqualToString:(NSString *)kUTTypeMovie]) { 
     UIImage *movie = [info 
          objectForKey:UIImagePickerControllerQualityTypeHigh]; 

     videoRecorder2.image = movie; 

      if (newMedia) 
       UISaveVideoAtPathToSavedPhotosAlbum(movie, 
               self, 
               @selector(movie:finishedSavingWithError:contextInfo:), 
               nil); 
}}} 

tengo una sentencia if ya que la aplicación puede tomar tanto de vídeo e imágenes fijas.

La primera parte es para todavía - que trabaja y luego la segunda parte Todavía estoy Tutu-ción con :-)

Respuesta

18

Prueba esto:

UISaveVideoAtPathToSavedPhotosAlbum(moviepath,nil,nil,nil); 

Editar: Prueba esto y modificar su código a este método:

// For responding to the user tapping Cancel. 
- (void) imagePickerControllerDidCancel: (UIImagePickerController *) picker { 

    [[picker parentViewController] dismissModalViewControllerAnimated: YES]; 
    [picker release]; 
} 

// For responding to the user accepting a newly-captured picture or movie 
- (void) imagePickerController: (UIImagePickerController *) picker 
      didFinishPickingMediaWithInfo: (NSDictionary *) info { 

    NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType]; 
    UIImage *originalImage, *editedImage, *imageToSave; 

    // Handle a still image capture 
    if (CFStringCompare ((CFStringRef) mediaType, kUTTypeImage, 0) 
      == kCFCompareEqualTo) { 

     editedImage = (UIImage *) [info objectForKey: 
        UIImagePickerControllerEditedImage]; 
     originalImage = (UIImage *) [info objectForKey: 
        UIImagePickerControllerOriginalImage]; 

     if (editedImage) { 
      imageToSave = editedImage; 
     } else { 
      imageToSave = originalImage; 
     } 

    // Save the new image (original or edited) to the Camera Roll 
     UIImageWriteToSavedPhotosAlbum (imageToSave, nil, nil , nil); 
    } 

    // Handle a movie capture 
    if (CFStringCompare ((CFStringRef) mediaType, kUTTypeMovie, 0) 
      == kCFCompareEqualTo) { 

     NSString *moviePath = [[info objectForKey: 
        UIImagePickerControllerMediaURL] path]; 

     if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum (moviePath)) { 
      UISaveVideoAtPathToSavedPhotosAlbum (
        moviePath, nil, nil, nil); 
     } 
    } 

    [[picker parentViewController] dismissModalViewControllerAnimated: YES]; 
    [picker release]; 
} 
+0

suena como que la manera correcta - he añadido algo de código para mostrar lo que estoy haciendo - vítores –

+0

Comprobar si la película es nula o si Newmedia es nula. –

+0

Lo siento es que una pregunta o la respuesta? newMedia es un booleano, así que estoy pensando que debería ser nulo, para que pueda guardar el clip, ¿verdad? tal vez estoy en el camino equivocado aquí. –

Cuestiones relacionadas