我正在使用 UIDocumentPickerViewController 来允许用户打开存储在云存储提供商中的视频文件。在 UIDocumentPickerDelegate -> documentPicker(_ :, didPickDocumentsAt:) 我检查 URL 是否有效并简单地设置 let video = AVURLAsset(url: url)。在此之前,我添加了 url.startAccessingSecurityScopedResource()。
这适用于 Dropbox。但是,对于 Google Drive,我得到了一个有效的 URL,但生成的 AVAsset 将 isPlayable 和 isReadable 都设置为 false,并且视频无法播放。有趣的是,驱动器中的某些文件会发生这种情况,但不是全部。无法加载的文件没有视频缩略图(只是通用视频图标),正确加载的文件有预览缩略图 - 暗示 Google 云端硬盘提供商以不同方式处理这些文件。
我尝试使用 Google Drive 应用程序使文件可以离线使用,我认为这可能会有所作为,但没有运气。我不知道有什么区别,也不知道如何将这些文件加载到我的 AVURLAsset 中。
还有一件事 - 我禁用了 Google Drive 中的“隐私屏幕”设置,这会阻止任何文件加载到文档选择器中。
有任何想法吗?是否有我需要了解的安全设置?
谢谢!