Skip to content

Commit c691eff

Browse files
Fanghaopaulshen
authored andcommitted
[bugfix] Don’t compress the video from camera roll and use the raw asset. So the compression is consistent from both native image picker and our media keyboard.
Fixed iOS 13 cannot load the compressed video file at the temp file path.
1 parent 1799068 commit c691eff

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

Libraries/CameraRoll/RCTImagePickerManager.m

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,11 @@ - (dispatch_queue_t)methodQueue
119119
UIImagePickerController *imagePicker = [UIImagePickerController new];
120120
imagePicker.delegate = self;
121121
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
122+
123+
// Don't compress the video
124+
if (@available(iOS 11.0, *)) {
125+
imagePicker.videoExportPreset = AVAssetExportPresetPassthrough;
126+
}
122127

123128
NSMutableArray<NSString *> *allowedTypes = [NSMutableArray new];
124129
if ([RCTConvert BOOL:config[@"showImages"]]) {
@@ -158,8 +163,7 @@ - (void)imagePickerController:(UIImagePickerController *)picker
158163
{
159164
NSString *mediaType = info[UIImagePickerControllerMediaType];
160165
BOOL isMovie = [mediaType isEqualToString:(NSString *)kUTTypeMovie];
161-
NSString *key = isMovie ? UIImagePickerControllerMediaURL : UIImagePickerControllerReferenceURL;
162-
NSURL *imageURL = info[key];
166+
NSURL *imageURL = info[UIImagePickerControllerReferenceURL] ?: info[UIImagePickerControllerMediaURL];
163167
UIImage *image = info[UIImagePickerControllerOriginalImage];
164168
NSNumber *width = 0;
165169
NSNumber *height = 0;

0 commit comments

Comments
 (0)