Trong ứng dụng của tôi, tôi cần chọn bất kỳ tệp video nào và hiển thị url hiển thị cho tệp video trong ứng dụng.Cách chọn bất kỳ tệp Video hoặc Phim nào từ UIImagePickerController
-(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];
}
}
Tôi đã sử dụng đoạn mã trên để hiển thị hình ảnh và video, mọi thứ đang đến tốt, tuy nhiên khi tôi chọn bất kỳ tập tin video, nó không nói đến UIImagePickerController Đại biểu Phương pháp, tập tin video trực tiếp đóng, i don 't muốn chơi bất kỳ tập tin video, khi tôi chọn bất kỳ file video cần đến trong bất động sản đại biểu của nó
Nếu bạn đang sử dụng ARC, bạn có thể so sánh loại phương tiện truyền thông dễ dàng hơn một chút. if ([mediaType isEqualToString: (__ bridge NSString *) kUTTypeMovie]) { – averydev
Bạn cũng có thể sử dụng cú pháp đường để tạo mảng như sau: 'imagePicker.mediaTypes = @ [(NSString *) kUTTypeMovie, (NSString *) kUTTypeImage];' (v.v., thêm các loại như mong muốn.) Chức năng tương tự, chỉ cần gõ ít hơn một chút.:) – Olie
Câu trả lời tuyệt vời :). Tôi thấy rằng bằng cách thiết lập picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; chỉ đưa ra một danh sách các video và thấy nó hữu ích hơn cho những gì tôi đã làm. Ghi nhớ các loại nguồn khác nhau sẽ hiển thị các menu khác nhau (cho tôi sử dụng UIImagePickerControllerSourceTypePhotoLibrary đưa lên các anbom ảnh của tôi nhưng sau đó hiển thị chúng trống video) –