如何禁用视频压缩 - UIImagePickerController, Xamarin.IOS, C#
How to disable video compression - UIImagePickerController, Xamarin.IOS, C#
程序:
我目前正在使用 UIImagePickerController,它允许用户 select 在他们的设备上播放视频。然后检索视频的 URL 并存储它。
问题:
当用户 select 播放视频时,它会压缩视频。 如何禁用压缩部分?因为我只对url感兴趣,如果视频很大,需要很长时间。
我找到了这个答案 -
但是,对我来说 "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;
AVAssetExportSessionPreset
提供了一个方便的枚举,您可以使用它来获取 NSString
,然后您可以将其转换为 C# string
.
示例:
var MediaPicker = new UIImagePickerController
{
~~~~
VideoExportPreset = AVAssetExportSessionPreset.Passthrough.GetConstant().ToString(),
~~~~
};
程序: 我目前正在使用 UIImagePickerController,它允许用户 select 在他们的设备上播放视频。然后检索视频的 URL 并存储它。
问题: 当用户 select 播放视频时,它会压缩视频。 如何禁用压缩部分?因为我只对url感兴趣,如果视频很大,需要很长时间。
我找到了这个答案 -
但是,对我来说 "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;
AVAssetExportSessionPreset
提供了一个方便的枚举,您可以使用它来获取 NSString
,然后您可以将其转换为 C# string
.
示例:
var MediaPicker = new UIImagePickerController
{
~~~~
VideoExportPreset = AVAssetExportSessionPreset.Passthrough.GetConstant().ToString(),
~~~~
};