iOS使用TZImagePickerController或者HXPhotoPicker导出视频出现特殊有毒视频"视频导出失败"的问题解决
一、TZImagePickerController解决方法:
导出视频参数由AVAssetExportPresetHighestQuality或者AVAssetExportPresetMediumQuality替换成:AVAssetExportPresetLowQuality就能导出成功
[[TZImageManager manager] getVideoOutputPathWithAsset:asset presetName:AVAssetExportPresetHighestQuality success:^(NSString *outputPath) {
} failure:^(NSString *errorMessage, NSError *error) {
//【再次导出视频】导出视频失败后,再次低质量导出一次,防止出现特殊有毒视频导出失败:AVAssetExportPresetLowQuality
[[TZImageManager manager] getVideoOutputPathWithAsset:asset presetName:AVAssetExportPresetLowQuality success:^(NSString *outputPath) {
} failure:^(NSString *errorMessage, NSError *error) {
}];
}];
二、HXPhotoPicker解决方法:
导出视频参数由AVAssetExportPresetHighestQuality或者AVAssetExportPresetMediumQuality替换成:AVAssetExportPresetLowQuality就能导出成功
HXPhotoModel *model = self.dataSouceVideo.firstObject;
[model exportVideoWithPresetName:AVAssetExportPresetMediumQuality startRequestICloud:nil iCloudProgressHandler:nil exportProgressHandler:^(float progress, HXPhotoModel * _Nullable model) {
// 导出视频时的进度,在iCloud下载完成之后
} success:^(NSURL * _Nullable videoURL, HXPhotoModel * _Nullable model) {
// 导出完成, videoURL
} failed:^(NSDictionary * _Nullable info, HXPhotoModel * _Nullable model) {
//【再次导出视频】失败,在此用最低质量去导出一次视频,防止有些特殊视频导出失败
[model exportVideoWithPresetName:AVAssetExportPresetLowQuality startRequestICloud:nil iCloudProgressHandler:nil exportProgressHandler:^(float progress, HXPhotoModel * _Nullable model) {
// 导出视频时的进度,在iCloud下载完成之后
} success:^(NSURL * _Nullable videoURL, HXPhotoModel * _Nullable model) {
// 导出完成, videoURL
} failed:^(NSDictionary * _Nullable info, HXPhotoModel * _Nullable model) {
}];
}];