2011-06-07 6 views
7

estoy usando siguiente código para mostrar videotecacómo importar vídeo de la biblioteca iphone y juega en la aplicación

-(IBAction)showVideoLibrary 
{ 
UIImagePickerController *videoPicker = [[UIImagePickerController alloc] init]; 
videoPicker.delegate = self; 
videoPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 

videoPicker.mediaTypes =[[NSArray alloc] initWithObjects: (NSString *)kUTTypeMovie,nil];  
if(self.popoverController!=nil) 
{ 
    [self.popoverController release]; 
} 
self.popoverController = [[UIPopoverController alloc] initWithContentViewController:videoPicker]; 
popoverController.delegate = self; 
popoverController.popoverContentSize=CGSizeMake(320,1000); 

[popoverController presentPopoverFromRect:CGRectMake(0,0,10,10) inView:self.view permittedArrowDirections:nil animated:YES]; 

} 

y para recibir el URL de video seleccionada estoy usando la siguiente función

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

NSString *mediaType = [info valueForKey:UIImagePickerControllerMediaType]; 
if([mediaType isEqualToString:@"public.movie"]) 
{ 
    NSLog(@"came to video select..."); 

    NSURL *videoUrl=(NSURL*)[info objectForKey:@"UIImagePickerControllerMediaURL"]; 

    NSLog(@"Got Movie Url==%@",videoUrl); 


} 

este el código que estoy utilizando, puedo ver la lista de presentes de vídeo en la biblioteca, pero cuando pulso el botón "USO", que está mostrando la compresión de vídeo .. y no puedo cancelarlo, y no estoy recibiendo ningún tipo de url en el

- (void)imagePickerController: (UIImagePickerController *)picker2 didFinishPickingMediaWithInfo: (NSDictionary *)info 
función

.. Alguna idea para resolver este problema .. y obtener la URL en la aplicación.

Gracias.

Respuesta

10

probarlo en dispositivos iPhone real

Este es el código para la recogida de vídeo de la biblioteca de iPhone que he usado en mi proyecto

Apenas añada método de vídeo desde el selector a la tecla deseada

-(void)video 
    { 
    UIImagePickerController *imagePicker = 
    [[UIImagePickerController alloc] init]; 
    imagePicker.delegate = self; 
    imagePicker.sourceType = 
    UIImagePickerControllerSourceTypePhotoLibrary; 


    imagePicker.mediaTypes = [[NSArray alloc] initWithObjects:(NSString *)kUTTypeMovie, nil]; 

    [self presentModalViewController:imagePicker animated:YES]; 


    } 


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


    NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType]; 

    if (CFStringCompare ((__bridge CFStringRef) mediaType, kUTTypeMovie, 0) 
    == kCFCompareEqualTo) 
    { 

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

     NSURL *videoUrl=(NSURL*)[info objectForKey:UIImagePickerControllerMediaURL]; 
    // NSLog(@"%@",moviePath); 

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


    [self dismissModalViewControllerAnimated:YES]; 

    [picker release]; 


    } 

No olvide agregar la infraestructura de servicios de núcleo móvil

y importar

#import <MobileCoreServices/UTCoreTypes.h> 

La cadena "moviepath" le muestra la ruta del video en ese iPhone y luego realiza lo que desee con ese video. Obtendrá ruta de vídeo después de la compresión se realiza en ruta película cuerda y "videoURL" es url para ese vídeo para reproducir el video

MPMoviePlayerController *player =[[MPMoviePlayerController alloc] initWithContentURL: url]; // give here the "videourl" 
    [[player view] setFrame: [self.view bounds]]; 
    [self.view addSubview: [player view]]; 
    [player play]; 
+0

código muy agradable para el acceso y vídeos muchas gracias –

+0

Gracias @SURESHSANKE –

+0

@DineshKaushik usted señor, eres un genio Muchas gracias, esto me ayudó también :) Gracias – Supertecnoboff

Cuestiones relacionadas