【问题标题】:Setting Image picker sourceType so that only pictures and no video can be selected设置图像选择器 sourceType 以便只能选择图片而不能选择视频
【发布时间】:2015-11-25 00:50:09
【问题描述】:

我希望用户能够使用相机,但不能选择拍摄视频。就目前而言,当用户启动相机时,照片和视频控件都显示在视图的左下角。下面是我的 launchCamera 和 imagePickerController 方法。

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

self.image = [info objectForKey:UIImagePickerControllerOriginalImage];
self.challengePic.image = self.image;
if (self.imagePicker.sourceType == UIImagePickerControllerSourceTypeCamera) {
    UIImageWriteToSavedPhotosAlbum(self.image, nil, nil, nil);
    self.challengePic.image = self.image;

    }

[self dismissViewControllerAnimated:YES completion:nil];
}


- (IBAction)launchCamera:(id)sender {
if (self.image == nil && [self.videoFilePath length] == 0) {
    self.imagePicker = [[UIImagePickerController alloc] init];
    self.imagePicker.delegate = self;
    self.imagePicker.allowsEditing = NO;

    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
        self.imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
    }
    else {
        self.imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    }
    self.imagePicker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:self.imagePicker.sourceType];

    [self presentViewController:self.imagePicker animated:NO completion:nil];
}

}

- (IBAction)launchAlbum:(id)sender {
if (self.image == nil && [self.videoFilePath length] == 0) {
    self.imagePicker = [[UIImagePickerController alloc] init];
    self.imagePicker.delegate = self;
    self.imagePicker.allowsEditing = NO;

    self.imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

    self.imagePicker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:self.imagePicker.sourceType];

    [self presentViewController:self.imagePicker animated:NO completion:nil];
}

}

有没有什么方法可以设置图片选择器的 sourceType 以便只能选择图片而不能选择视频?提前致谢!

【问题讨论】:

    标签: ios objective-c uiimagepickercontroller


    【解决方案1】:

    不要包含此行:

    self.imagePicker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:self.imagePicker.sourceType];
    

    来自UIImagePickerController class Reference

    默认情况下,该属性设置为单值 kUTTypeImage, 在捕获媒体时指定静态相机界面,以及 指定仅应在媒体中显示静止图像 浏览保存的媒体时选择器。指定影片捕捉 界面,或表示只显示电影 浏览保存的媒体,使用 kUTTypeMovie 标识符...。

    【讨论】:

      【解决方案2】:

      如果您只想选择图像,请不要将mediaTypes 属性设置为给定源的所有可能媒体类型。

      默认情况下,图片选择器只会显示照片库中的图片。

      但是您的 mediaTypes 设置会覆盖此默认设置并允许视频。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-23
        • 2023-01-24
        • 2020-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多