DVAssetLoaderDelegate
描述
使用 DVAssetLoaderDelegate,您可以实现对 AVPlayer 下载的 AVURLAsset 数据的缓存。DVAssetLoaderDelegate 提供您可以使用的方法来保存下载的数据。
- (void)dvAssetLoaderDelegate:(DVAssetLoaderDelegate *)resourceLoader
didLoadData:(NSData *)data
forURL:(NSURL *)url;
有关其他方法,请参阅 DVAssetLoaderDelegatesDelegate.h。
用法
简单方法(继承 AVURLAsset)
- 创建
DVURLAsset
。 - 实现
DVURLAsset
的 loaderDelegate。
手动方法(不继承)
- 使用AVURLAsset的URL创建
DVAssetLoaderDelegate
对象。 - 为接收缓存数据设置
DVAssetLoaderDelegate
的代理。 - 在创建
AVURLAsset
之前,将URL方案更改为[DVAssetLoaderDelegate方案]
。 - 使用更新后的方案创建
AVURLAsset
。 - 将
AVURLAsset
的资源加载代理设置为创建的DVAssetLoaderDelegate
对象。
NSURL *URL = ...;
DVAssetLoaderDelegate *resourceLoaderDelegate = [[DVAssetLoaderDelegate alloc] initWithURL:URL];
resourceLoaderDelegate.delegate = self;
NSURLComponents *components = [[NSURLComponents alloc] initWithURL:URL resolvingAgainstBaseURL:NO];
components.scheme = [DVAssetLoaderDelegate scheme];
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:[components URL] options:options];
[asset.resourceLoader setDelegate:resourceLoaderDelegate queue:dispatch_get_main_queue()];
安装
DVAssetLoaderDelegate可通过CocoaPods获取。要安装它,只需将以下行添加到Podfile中
pod 'DVAssetLoaderDelegate'
作者
vdugnist, [email protected]
许可
DVAssetLoaderDelegate在MIT许可下可用。有关更多信息,请参阅LICENSE文件。