2011-11-29 28 views
8

ci sto riuscendo a capire come fare un'applicazione fotocamera nel mio viaggio di apprendimento :-)Salva un video che ho registrare nella mia app

L'unica cosa che mi sono bloccato con il salvataggio è un video che ho registrato. Sono in grado di salvare una foto, ma lo stesso non funziona per i video.

Quindi penso di averlo quasi con l'aiuto delle app iBrad.

ottenuto questo codice:

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

ho un'istruzione if, perché l'applicazione può avvenire sia video che immagini fisse.

La prima parte è per ancora - che funziona e poi la seconda parte sto ancora Tutu-re con :-)

risposta

18

Prova questo:

UISaveVideoAtPathToSavedPhotosAlbum(moviepath,nil,nil,nil); 

Edit: Prova questo e modificare il codice a questo metodo:

// 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

suona come io la strada giusta - ho aggiunto un po 'di codice per mostrare quello che sto facendo - applausi –

+0

Verificare se film è nullo o se NewMedia è pari a zero. –

+0

Scusa è una domanda o la risposta? newMedia è un booleano e quindi penso che dovrebbe essere nullo - in modo che possa salvare il clip giusto? forse sono sulla strada sbagliata qui. –

Problemi correlati