我知道UIImagePickerController允许您在选择时压缩媒体内容。但是,我不知道如何对PHPickerViewController做同样的事情。如何在获得结果(didFinishPicking)后压缩视频(这样我就可以减少上传和下载数据的时间)
发布于 2022-08-21 20:45:03
我不认为PHPickerViewController会这样做,但根据您如何使用选择器,还有其他方法可以做到:
PHPickerConfiguration,因此不需要请求权限),则必须使用NSItemProvider。据我所知,唯一的选择可能是使用项目提供程序将视频保存到临时文件中,然后使用AVAssetExportSession将其转换为更低的分辨率/比特率(参见这里的一些示例:AVAssetExportSession)。如果使用带有显式传递的照片库的选择器,则
assetIdentifier,您可以使用它获取相应的PHAsset。然后,使用PHImageManager的requestAVAsset方法获得所需质量的视频资产。您仍然需要通过AVAssetExportSession导出AVAsset,但是使用这种方法,磁盘上不会有一个(可能很大的)全res临时文件。我最近正在开发一个使用该技术的开源应用程序,在这里可以找到一些示例:https://stackoverflow.com/questions/73431461
复制相似问题