iOS 獲取視頻縮略圖
首先導(dǎo)入AVFoundation庫(kù)
UIImagePickerController
- 調(diào)用攝像頭拍照,攝像的時(shí)候會(huì)用到UIImagePickerController
// 實(shí)例化一個(gè)對(duì)象
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
// 設(shè)置圖片的類(lèi)型
imagePicker.sourceType = [UIImagePickerControllerSourceTypeCamera];
// 設(shè)置媒體的種類(lèi)
imagePicker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
// 允許編輯
imagePicker.allowsEditing = NO;
// 閃燈光模式
imagePicker.cameraFlashMode = UIImagePickerControllerCameraFlashModeAuto;
// 攝像的前置或者后置
imagePicker.cameraDevice = UIImagePickerControllerCameraRear;
imagePicker.delegate = self;
// 通過(guò)模態(tài)視圖推出視圖頁(yè)面
[self presentViewController:imagePicker animated:YES completion:nil];
注釋:參數(shù)說(shuō)明
sourceType 的三種類(lèi)型分別是:
- UIImagePickerControllerSourceTypeCamera 照相機(jī)
- UIImagePickerControllerSourceTypePhotoLibrary 照片庫(kù) (用戶不可刪除)
- UIImagePickerControllerSourceTypeSavedPhotosAlbum 通過(guò)攝像頭保存的照片(用戶可刪除)
實(shí)現(xiàn)PickerController的代理屬性
- 需要給它設(shè)置代理堂鲜,然后遵守兩個(gè)協(xié)議 可柿,實(shí)現(xiàn)下面的代理方法:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info;
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;
- 通常情況下,在didFinish方法里面對(duì)照片或視頻進(jìn)行保存處理绊寻;在didCancel方法里dismissViewController
獲取視頻縮略圖
- (UIImage *)getScreenShotImageFromVideoPath:(NSString *)filePath{
UIImage *shotImage;
//視頻路徑URL
NSURL *fileURL = [NSURL fileURLWithPath:filePath];
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:fileURL options:nil];
AVAssetImageGenerator *gen = [[AVAssetImageGenerator alloc] initWithAsset:asset];
gen.appliesPreferredTrackTransform = YES;
CMTime time = CMTimeMakeWithSeconds(0.0, 600);
NSError *error = nil;
CMTime actualTime;
CGImageRef image = [gen copyCGImageAtTime:time actualTime:&actualTime error:&error];
shotImage = [[UIImage alloc] initWithCGImage:image];
CGImageRelease(image);
return shotImage;
}