Guardar un video que grabo en mi aplicación

Estoy teniendo éxito en entender cómo hacer una aplicación de camera en mi viaje de aprendizaje 🙂

Lo único con lo que me quedo es save un video que he grabado. Soy capaz de save una foto, pero no funciona para videos.

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

tengo este codigo:

-(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 instrucción if porque la aplicación puede tomar tanto video como imágenes fijas.

La primera parte es para todavía – que funciona y luego la segunda parte todavía estoy tutuando con 🙂

Prueba esto:

 UISaveVideoAtPathToSavedPhotosAlbum(moviepath,nil,nil,nil); 

Editar: Pruebe esto y modifique 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-captunetworking 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]; }