c# - 如何禁用视频压缩 - 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;
解决方案
AVAssetExportSessionPreset
提供了一个方便的枚举,您可以使用它来获取NSString
from,然后您可以将其转换为 C# string
。
例子:
var MediaPicker = new UIImagePickerController
{
~~~~
VideoExportPreset = AVAssetExportSessionPreset.Passthrough.GetConstant().ToString(),
~~~~
};
推荐阅读
- java - JSP:加入 2 个实体时出现 NumberFormatException
- ssas - SSAS 表格模型:计算表和 DAX 之间的差异
- mysql - MySQL“自动”加密每个会话
- r - 在 R Data.Table 中创建一个计数器列,在另一列上有一个条件
- c - 将“>>”作为 execv 参数传递?
- webpack - 停止 webpack-dev-server 聚焦已打开站点的浏览器选项卡
- node.js - 如何在 electron-forge 中配置 electronWinstallerConfig 以指定设置的自定义安装路径?
- c# - 为什么 List.Add 方法不起作用?
- google-bigquery - BigQuery:展平嵌套架构中的所有重复字段
- networking - 视频游戏使用哪些网络工具来获得实时通信?