在iOS中使用UIImagePickerController时如何检测用户是否从库中选择图片或视频?

Ash*_*hok 2 objective-c uiimagepickercontroller ios

我在我的 ios 应用程序中使用 UIImagePickerController 为用户提供从照片库中选择照片或视频的选项。我将视频限制为 1 分钟。这是我的代码:

在按钮操作中:

- (void)getPictureOrVideoFromLibrary {

    CFStringRef mTypes[2] = { kUTTypeImage, kUTTypeMovie };
    CFArrayRef mTypesArray = CFArrayCreate(CFAllocatorGetDefault(), (const void**)mTypes, 2, &kCFTypeArrayCallBacks);
    imagePickerController.mediaTypes = (__bridge NSArray*)mTypesArray;
    CFRelease(mTypesArray);

    imagePickerController.videoMaximumDuration = 60.0f;
    imagePickerController.allowsEditing = YES;

    imagePickerController.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    [self presentViewController:imagePickerController animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)

我想在照片库中显示图片和视频,所以我同时使用了kUTTypeImagekUTTypeMovie。这里我设置videoMaximumDuration60.0fallowsEditingtoYES因为我想将视频长度限制为 1 分钟。

我面临的问题:当用户从库中选择视频时没有问题,但如果用户从库中选择图片,我会遇到问题,图片上有一个矩形框。

选择器显示如下(有视频和图片)[截图1]:

在此输入图像描述

当用户选择视频时,它显示如下(它按预期工作):

在此输入图像描述

当用户选择图片时,它显示如下[屏幕截图2]:

在此输入图像描述

我不想在这里显示矩形裁剪框。

用户按下“选择”后,我将能够在委托方法“didFinishPickingMediaWithInfo”中检测它是照片还是视频。

但我想知道从截图1到截图2是照片还是视频。这样我就可以设置allowsediting为“否”来摆脱那个矩形框。

是否可以?

我不想将这两个选项显示为“从库中选择照片”、“从库中选择视频”。我只想显示一个选项“从库中选择照片或视频”。

有什么方法可以检测用户是否选择图片或视频,或者是否可以摆脱该矩形框?

有可能实现吗?

我需要您的宝贵建议。请帮我。提前致谢。

she*_*ath 5

在委托方法上像这样检查

   - (void)imagePickerController:(UIImagePickerController *)pickerImage didFinishPickingMediaWithInfo:(NSDictionary *)info
{

  // UIImagePickerControllerMediaType
 if(info[UIImagePickerControllerMediaType]==kUTTypeImage)
 {
    //image
 }
 else
 {
    //video
 }
}
Run Code Online (Sandbox Code Playgroud)

1)添加MobileCoreServices.framework

2)导入下面的头文件。MobileCoreServices/MobileCoreServices.h