在錄制視頻之前調用相機視圖時,我已經實現了疊加視圖。pickerController.cameraOverlayView =myOverlay;錄制視頻并通過電子郵件共享后,可以進行視頻錄制并將視頻保存到“相冊”中。如果我將視頻質量用作“高質量”,則錄制的視頻已經變得很大。例如,如果我以高質量錄制視頻30秒鐘,則錄制的視頻已變為30-40 mb。pickerController.videoQuality = UIImagePickerControllerQualityTypeHigh;我如何編程才能在共享之前壓縮高質量的錄制視頻,就像Apple對內置視頻錄制器的處理方式一樣?請指導我解決此問題。謝謝!更新:這是我最近正在嘗試的方法,但仍然沒有成功:我想壓縮錄制的音頻,并將它們錄制到didFinishPickingMediaWithInfo并將其實際的視頻路徑本身存儲在同一相冊中,而不是其他位置。當我從照片庫中選取時,我測試了將相同的視頻壓縮到非常小的尺寸,但是雖然我使用了下面的AVAssetExportSession代碼,但是從相機拍攝并通過didFinishPickingMediaWithInfo來的相同視頻未壓縮。- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];if ([mediaType isEqualToString:(NSString *)kUTTypeMovie]){ NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL]; NSString *urlPath = [videoURL path]; if ([[urlPath lastPathComponent] isEqualToString:@"capturedvideo.MOV"]) { if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum (urlPath)) { [self copyTempVideoToMediaLibrary :urlPath]; } else { NSLog(@"Video Capture Error: Captured video cannot be saved...didFinishPickingMediaWithInfo()"); } } else { NSLog(@"Processing soon to saved photos album...else loop of lastPathComponent..didFinishPickingMediaWithInfo()"); }} [self dismissModalViewControllerAnimated:YES];}- (void)copyTempVideoToMediaLibrary :(NSString *)videoURL { dispatch_queue_t mainQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);dispatch_async(mainQueue, ^{ ALAssetsLibrary *library = [[[ALAssetsLibrary alloc] init] autorelease]; ALAssetsLibraryWriteVideoCompletionBlock completionBlock = ^(NSURL *assetURL, NSError *error) { NSLog(@"Saved URL: %@", assetURL); NSLog(@"Error: %@", error);
- 3 回答
- 0 關注
- 750 瀏覽
添加回答
舉報
0/150
提交
取消