有人成功地使用AVFoundation、AVPlayer播放了Google驱动器视频吗?
Objective-c或swift、ios或osx对我来说很好。
我所尝试过的?
我试过了:
>
iOS从谷歌驱动器斯威夫特流视频。在这里,如果它试图从url提取链接,我得到了拒绝访问(视频是公开的)。
从谷歌驱动器中提取链接并使用该链接,例如。视频链接,但当我在应用程序中使用它时,没有加载任何内容。
尝试这样的东西后,寻找到其他解决方案的web和东西,没有运气
视频链接
提前感谢!
GDrive不支持视频的流式传输,但支持下载简历。
您将需要使用自定义的AVAssetResourceLoader有一个有效的视频URL。
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.
}
}
在这个示例项目中,目标c中有3个自定义AVAssetResourceLoader会
的实现。
基本上,一旦您下载了url si以将其模式替换为自定义模式,您将不得不做什么。类似于gDrive://
而不是https://
。
当您使用此url创建AVURLAsset时,您可以访问新创建的对象的属性resourceLoader
并调用传递您的GDriveLoader
的方法set会代表。
使用自定义模式,AVFoundation不知道如何获取视频数据,并且会向资产的资源加载器询问该怎么做。方法resourceLoader(_resourceLoader: AVAssetResourceLoader,应该为AVPlayer当前读取的每个数据块查询多次。