gpt4 book ai didi

ios - AVFoundation 加载 Google Drive 视频

转载 作者:行者123 更新时间:2023-11-28 15:07:56 28 4
gpt4 key购买 nike

有人成功地使用 AVFoundation、AVPlayer 播放 Google Drive 视频吗?

Objective-c 或 swift、ios 或 osx 都适合我。

我试过什么?

我试过:

  • iOS Stream video from Google drive Swift .在这里,如果它尝试从 url 中提取链接,我会被拒绝访问(视频是公开的)。

  • 从谷歌驱动器中提取链接并使用该链接,例如。 video link ,但是当我在应用程序中使用它时,没有加载任何内容。

  • 试过类似 this 的东西在研究了其他网络和东西的解决方案之后,没有运气

链接到 video

提前致谢!

最佳答案

Gdrive 不支持视频流,但支持下载续传。

您需要使用具有有效视频 URL 的自定义 AVAssetResourceLoaderDelegate

class GDriveLoader: NSObject, AVAssetResourceLoaderDelegate {
public func resourceLoader(_ resourceLoader: AVAssetResourceLoader, shouldWaitForLoadingOfRequestedResource loadingRequest: AVAssetResourceLoadingRequest) -> Bool {
//Here you will put your code to download the bytes requested by AVPlayer.
//You can find this info in the loadingRequest.dataRequest.
}
}

在此sample project在 objective-c 中有 3 个自定义 AVAssetResourceLoaderDelegate 的实现。

基本上,一旦您拥有下载 url si 将其架构替换为自定义架构,您就必须执行的操作。类似于 gdrive:// 而不是 https://

当您使用此 url 创建 AVURLAsset 时,您可以访问新创建的对象的属性 resourceLoader 并调用方法 setDelegate 传递您的 GDriveLoader

对于自定义模式,AVFoundation 不知道如何获取视频数据,并且会询问 Assets 的资源加载器要做什么。 resourceLoader(_ resourceLoader: AVAssetResourceLoader, shouldWaitForLoadingOfRequestedResource loadingRequest: AVAssetResourceLoadingRequest) 方法将针对 AVPlayer 当前正在读取的每个数据 block 进行多次查询。

关于ios - AVFoundation 加载 Google Drive 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48190533/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com