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];
}
https://github.com/questbeat/QBImagePicker potrebbe essere aiutarvi – kb920
Set mediaTypes come 'videoPicker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType: UIImagePickerControllerSourceTypePhotoLibrary];' e cercare di eseguire il codice. – VRAwesome