Siguiente código es para guardar la imagen la tomó de la cámara en el álbum de fotos.

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

Cómo guardar vídeo Recodificado en album de fotos?

OriginalEl autor Shreedhar | 2012-04-03

3 Comentarios

  1. 19

    De verificación a Continuación el código…

       - (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);
    
    }
    yo soy de la Grabación de vídeo. no tomar a partir de cualquier archivo
    donde u usar la ruta de destino
    He editado el post.Por favor mira que ahora.
    es necesario eliminar de vídeo en la ruta temporal? (/private/var/mobile/Applications/C2C16234-4535-4F0A-B22E-65C0F820AB25/tmp/capture-T0x1c50f840.tmp.uEJZZe/capturedvideo.MOV)

    OriginalEl autor Akshay Aher

  2. 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];
    }

    Este es el fragmento de código de apple ejemplo rosywriter. Sould trabajo.

            movieURL = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@%@", NSTemporaryDirectory(), @"Movie.MOV"]];
            [movieURL retain];

    Las líneas anteriores para crear el archivo y ruta de acceso para el vídeo.

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

    Esta función se utiliza para iniciar la grabación de vídeo en que movieURL archivo con avassetwriter.

    OriginalEl autor jkr

  3. 0

    Tratar a continuación el código

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

    o puedes probar este también
    Guardar el vídeo en el directorio de documentos es el siguiente

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

    OriginalEl autor Anand

Dejar respuesta

Please enter your comment!
Please enter your name here