0

我正在使用 aPHPickerViewController来允许用户从他们的库中选择一个媒体项目。感兴趣的具体案例是他们选择视频的时间。

我收到PHPickerViewControllerDelegate委托方法的回调:

func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult])

我正在使用loadFileRepresentationNSItemProvider.

但是,该调用需要大量时间。而且这一切可能都是徒劳的——因为我对用户可以添加到应用程序的视频施加了大小限制。

所以,我的问题是:有没有办法快速确定用户选择的媒体项目的大小?例如,给定NSItemProvider?

4

1 回答 1

1

你找错地方了。甚至在您拥有项目提供者之前,您就开始使用 PHPickerResult。它为您提供资产标识符。从那里您可以从照片库中获取 PHAsset 并找出照片库愿意告诉您的任何内容。尺寸是一个无定形的概念,但您当然可以立即获得视频像素尺寸及其持续时间,这会告诉您很多信息。

当然,您需要照片库读取权限才能走这条路,而不仅仅是将视频保存到文件中。

另一方面,由于视频很大,有人可能会问你在乎什么大小。处理视频的关键不是将其全部作为数据块获取,而是将其播放,而照片库将让您立即做到这一点。

于 2021-11-08T03:37:01.673 回答