2012-04-03 6 views
4

Der folgende Code ist zum Speichern des Bildes von der Kamera ins Fotoalbum aufgenommen.Wie kann ich aufgenommene Videos in ein Fotoalbum speichern?

if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) 
    { 
     image = [info objectForKey:UIImagePickerControllerEditedImage]; 
     UIImageWriteToSavedPhotosAlbum(image, self, 
             @selector(image:finishedSavingWithError:contextInfo:), 
             nil); 
    } 

Wie rekodierte Video in PhotoAlbum speichern?

+2

[UISaveVideoAtPathToSavedPhotosAlbum] (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIKitFunctionReference/Reference/reference.html#//apple_ref/c/func/UISaveVideoAtPathToSavedPhotosAlbum) – Hemang

Antwort

19

Unten Code ...

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 



    NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType]; 
     if ([mediaType isEqualToString:@"public.movie"]){   
       // Saving the video/// Get the new unique filename 
       NSString *sourcePath = [[info objectForKey:@"UIImagePickerControllerMediaURL"]relativePath]; 
        UISaveVideoAtPathToSavedPhotosAlbum(sourcePath,nil,nil,nil); 

} 
+0

ich bin Aufnahme von Video . nicht aus jeder Datei – Shreedhar

+0

wo Sie mit Zielpfad – Shreedhar

+0

Ich habe den Beitrag bearbeitet.Bitte haben Sie sich das jetzt. –

0

Try Code unten

- (void)saveVideo:(NSURL *)videoUrl { 
    NSData *videoData = [NSData dataWithContentsOfURL:videoUrl]; 
    [videoData writeToFile:@"YOUR_PATH_HERE" atomically:YES]; 
    }  

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

     if ([type isEqualToString:(NSString *)kUTTypeVideo] || 
      [type isEqualToString:(NSString *)kUTTypeMovie]) { // movie != video 
      NSURL *videoURL [mediaDict objectForKey:UIImagePickerControllerMediaURL]; 
      [self saveVideo:videoUrl]; 
     } 

    } 

oder Sie können wie folgt dies auch Speichern der Video versuchen zu den Dokumenten Verzeichnis

ist
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 


    NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL]; 

    NSData *videoData = [NSData dataWithContentsOfURL:videoURL]; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *tempPath = [documentsDirectory stringByAppendingFormat:@"/vid1.mp4"]; 

    BOOL success = [videoData writeToFile:tempPath atomically:NO]; 


    [picker dismissModalViewControllerAnimated:YES]; 
    } 
1
- (void)saveMovieToCameraRoll 
{ 
    ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 
    [library writeVideoAtPathToSavedPhotosAlbum:movieURL 
           completionBlock:^(NSURL  *assetURL, NSError *error) { 
            if (error) 
             [self  showError:error]; 
            else 
             [self  removeFile:movieURL]; 

             dispatch_async(movieWritingQueue, ^{ 
              recordingWillBeStopped = NO; 
              self.recording = NO; 

              [self.delegate recordingDidStop]; 
            }); 
           }]; 
    [library release]; 
} 

Dies ist der Codeausschnitt von Apple Beispiel rosywriter. Sould Arbeit.

Die obigen Zeilen zum Erstellen von Datei und Pfad für das Video.

- (void) startRecording 
{ 
    dispatch_async(movieWritingQueue, ^{ 

     if (recordingWillBeStarted || self.recording) 
      return; 

     recordingWillBeStarted = YES; 

     // recordingDidStart is called from  captureOutput:didOutputSampleBuffer:fromConnection: once the asset writer is setup 
     [self.delegate recordingWillStart]; 

     // Remove the file if one with the same name already exists 
     [self removeFile:movieURL]; 

     // Create an asset writer 
     NSError *error; 
     assetWriter = [[AVAssetWriter alloc] initWithURL:movieURL fileType:(NSString *)kUTTypeQuickTimeMovie error:&error]; 
     if (error) 
      [self showError:error]; 
    }); 
} 

Diese Funktion startet die Aufnahme von Video in das movieURL Datei mit avassetwriter verwendet.

Verwandte Themen