Jak wybrać dowolny plik wideo lub film z UIImagePickerController
W mojej aplikacji muszę wybrać dowolny plik wideo i wyświetlić adres URL pliku wideo w aplikacji.
<code>-(void)viewDidLoad{ [super viewDidLoad]; self.imgPicker = [[UIImagePickerController alloc] init]; self.imgPicker.delegate = self; self.imgPicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; self.imgPicker.mediaTypes = [NSArray arrayWithObjects:(NSString *)kUTTypeMovie, (NSString *)kUTTypeImage, nil]; self.imgPicker.allowsEditing = NO; [self presentModalViewController:self.imgPicker animated:YES]; } -(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{ [picker dismissModalViewControllerAnimated:YES]; } -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage : (UIImage *)image editingInfo:(NSDictionary *)editingInfo{ } - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ value = 1; IMAGE_COUNTER = IMAGE_COUNTER + 1; NSString* mediaType = [info objectForKey:UIImagePickerControllerMediaType]; if ( [mediaType isEqualToString:@"public.movie" ]) { NSLog(@"Picked a movie at URL %@", [info objectForKey:UIImagePickerControllerMediaURL]); NSURL *url = [info objectForKey:UIImagePickerControllerMediaURL]; NSLog(@"> %@", [url absoluteString]); } else { UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; NSData* imageData = UIImageJPEGRepresentation(image, 1.0); NSString* incrementedImgStr = [NSString stringWithFormat: @"UserCustomPotraitPic%d.jpg", IMAGE_COUNTER]; NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString* documentsDirectory = [paths objectAtIndex:0]; NSString* fullPathToFile2 = [documentsDirectory stringByAppendingPathComponent:incrementedImgStr]; [imageData writeToFile:fullPathToFile2 atomically:NO]; } } </code>
Użyłem powyższego kodu do wyświetlania obrazu i wideo, wszystko jest w porządku, jednak kiedy wybieram dowolny plik wideo, nie przychodzi do metody delegowania UIImagePickerController, plik wideo jest odtwarzany bezpośrednio, nie chcę odtwarzać żadnego filmu plik, gdy wybieram dowolny plik wideo, powinien on znaleźć się w jego właściwości delegowanej