2015-06-17 11 views
10

provo questo:Obiettivo c - ios: come scegliere il video dal rullino fotografico?

UIImagePickerController *videoPicker = [[UIImagePickerController alloc] init]; 
videoPicker.delegate = self; 
videoPicker.modalPresentationStyle = UIModalPresentationCurrentContext; 
videoPicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; 
videoPicker.mediaTypes = @[(NSString*)kUTTypeMovie, (NSString*)kUTTypeAVIMovie, (NSString*)kUTTypeVideo, (NSString*)kUTTypeMPEG4]; 
videoPicker.videoQuality = UIImagePickerControllerQualityTypeHigh; 
[self presentViewController:videoPicker animated:YES completion:nil]; 

ma mostrare solo i video di foto che non fanno parte tutti i video nel rullino fotografico. Voglio selezionare tutti i video dal rullino fotografico. Per favore aiutatemi dando qualche indizio o codice. Grazie in anticipo!

+0

https://github.com/questbeat/QBImagePicker potrebbe essere aiutarvi – kb920

+2

Set mediaTypes come 'videoPicker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType: UIImagePickerControllerSourceTypePhotoLibrary];' e cercare di eseguire il codice. – VRAwesome

risposta

12

Ecco una raccolta e pulizia della risposta di cui sopra, più qualche dettaglio in più.

(0) Assicurarsi di avere questi due include.

#import <UIKit/UIKit.h> 
#import <MobileCoreServices/MobileCoreServices.h> // needed for video types 

(1) Aggiungere due delegati al file .h: UINavigationControllerDelegate e UIImagePickerControllerDelegate. Per noi, assomigliava a questo:

@interface ATHViewController() <UITabBarDelegate, UINavigationControllerDelegate,UIImagePickerControllerDelegate> 

(2) Presenta l'utente con la scelta di video dalla propria libreria. Aggiungi questo codice al tuo file .m da qualche parte.

// Present videos from which to choose 
    UIImagePickerController *videoPicker = [[UIImagePickerController alloc] init]; 
    videoPicker.delegate = self; // ensure you set the delegate so when a video is chosen the right method can be called 

    videoPicker.modalPresentationStyle = UIModalPresentationCurrentContext; 
    // This code ensures only videos are shown to the end user 
    videoPicker.mediaTypes = @[(NSString*)kUTTypeMovie, (NSString*)kUTTypeAVIMovie, (NSString*)kUTTypeVideo, (NSString*)kUTTypeMPEG4]; 

    videoPicker.videoQuality = UIImagePickerControllerQualityTypeHigh; 
    [self presentViewController:videoPicker animated:YES completion:nil]; 

(3) Gestire le risposte dal selettore. Aggiungi questo codice alla tua classe di delegato.

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

    // This is the NSURL of the video object 
    NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL]; 

    NSLog(@"VideoURL = %@", videoURL); 
    [picker dismissViewControllerAnimated:YES completion:NULL]; 
} 

(4) Gestire quando l'utente annulla la scelta.

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { 
    [picker dismissViewControllerAnimated:YES completion:NULL]; 
} 
6

Si prega di utilizzare il seguente codice per selezionare il video da iOS galleria

UIImagePickerController *videoPicker = [[UIImagePickerController alloc] init]; 
videoPicker.delegate = self; 
videoPicker.modalPresentationStyle = UIModalPresentationCurrentContext; 
videoPicker.mediaTypes =[UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypePhotoLibrary];‌​ 
videoPicker.mediaTypes = @[(NSString*)kUTTypeMovie, (NSString*)kUTTypeAVIMovie, (NSString*)kUTTypeVideo, (NSString*)kUTTypeMPEG4]; 
videoPicker.videoQuality = UIImagePickerControllerQualityTypeHigh; 
[self presentViewController:videoPicker animated:YES completion:nil]; 

Si prega di dare un'occhiata a questo link Select video from gallery

+2

#import per eliminare l'errore "tipo di identificatore non dichiarato kuTTypeAVIMovie" da questo codice – Praxiteles

+1

Non stai sovrascrivendo i valori in videoPicker.mediatypes qui? (Il tuo primo valore viene ignorato). Puoi cancellare la tua prima definizione di videoPicker.mediaTypes e questo codice sembra funzionare. – Praxiteles

Problemi correlati