ios 从照片库中选择具有一定持续时间和附加位置的视频

gkn4icbw  于 12个月前  发布在  iOS
关注(0)|答案(3)|浏览(130)

我正在开发一个应用程序,允许用户使用UIImagePickerController从照片库中选择视频。我想对视频进行一些过滤,例如如果选定的视频持续时间> 5分钟视频将不会被上传。同样的方式,选定的视频必须有它的位置坐标。
我已经在- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info中完成了这件事。首先,我得到了持续时间并验证了它,然后我使用ALAssetsLibraryAssetForURLResultBlock并检查附加的有效坐标。
所有的工作都很好,但问题是,当我选择从画廊的视频去压缩,并在此进展后,我能够得到的持续时间和位置。如果用户选择1小时的持续时间的视频,这将需要很多时间。如果它没有与它的位置比我的应用程序也会拒绝它。

  • 是否可以只选择那些<5分钟并具有有效坐标的视频?
  • 我们可以只显示符合我的应用标准的视频吗?
  • 我可以通过跳过图像拾取器的压缩来获得持续时间和位置吗?
tktrz96b

tktrz96b1#

您可以让用户选择任何视频,但如果超过5分钟,请强制他们将其编辑为您的最大持续时间。

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:imagePicker.sourceType]; 
imagePicker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie, nil];
imagePicker.videoMaximumDuration = 300; // duration in seconds
imagePicker.allowsEditing = YES;

字符串

wi3ka0sx

wi3ka0sx2#

根据您的要求,我认为UIImagePickerController不适合这个你需要AssetLibrary这是完全可定制的苹果,所以你可以得到所有视频属性的全部细节,如SizeDurationCo-Ordinates所有这一切,所以你需要通过“ALAssetsLibrary“为您的要求。
请通过下面的链接由苹果过滤视频和照片
ALAssetsFilter类引用

35g0bw71

35g0bw713#

在Swift 5+中,

var videoPicker = UIImagePickerController()
        
        videoPicker!.delegate = self
        videoPicker!.allowsEditing = true
        videoPicker?.mediaTypes = ["public.movie"]
        videoPicker?.videoMaximumDuration = 60 // in Seconds, default value is 10 minutes.
        
        DispatchQueue.main.async { [weak self] in
            guard let self = self else { return }
            self.present(videoPicker!, animated: true, completion: nil)
        }

字符串


的数据

相关问题