首页 > 解决方案 > 如何禁用视频压缩 - UIImagePickerController、Xamarin.IOS、C#

问题描述

程序: 我目前正在使用 UIImagePickerController 让用户在他们的设备上选择一个视频。然后它检索视频的 URL 并将其存储。

问题: 当用户选择视频时,它会压缩视频。如何禁用压缩部分?因为我只对url感兴趣,如果视频很大,需要很长时间。

我找到了这个答案 - https://stackoverflow.com/a/48643954/9764182

但是,对我来说,“VideoExportPreset”属性需要一个字符串。

代码:我认为我的代码不会有帮助,我确实有一个订阅拾取器完成拾取事件的函数。但是,压缩发生在触发该事件之前。

MediaPicker = new UIImagePickerController();
MediaPicker.SourceType = UIImagePickerControllerSourceType.PhotoLibrary;
MediaPicker.MediaTypes = UIImagePickerController.AvailableMediaTypes(UIImagePickerControllerSourceType.PhotoLibrary);
MediaPicker.ImageExportPreset = UIImagePickerControllerImageUrlExportPreset.Current;
MediaPicker.VideoQuality = UIImagePickerControllerQualityType.High;
MediaPicker.FinishedPickingMedia += Handle_FinishedPickingMedia;
MediaPicker.Canceled += Handle_Canceled;

标签: c#xamarinxamarin.formsxamarin.iosuiimagepickercontroller

解决方案


AVAssetExportSessionPreset提供了一个方便的枚举,您可以使用它来获取NSStringfrom,然后您可以将其转换为 C# string

例子:

var MediaPicker = new UIImagePickerController
{
    ~~~~
    VideoExportPreset = AVAssetExportSessionPreset.Passthrough.GetConstant().ToString(),
    ~~~~
};

推荐阅读