DVAssetLoaderDelegate
DVAssetLoaderDelegate copied to clipboard
Loader delegate for caching AVURLAsset
DVAssetLoaderDelegate
Description
With DVAssetLoaderDelegate you can implement caching data downloaded by AVPlayer for AVURLAsset. DVAssetLoaderDelegate provides you delegate method you can use to save downloaded data:
- (void)dvAssetLoaderDelegate:(DVAssetLoaderDelegate *)resourceLoader
didLoadData:(NSData *)data
forURL:(NSURL *)url;
For other methods check DVAssetLoaderDelegatesDelegate.h.
Usage
Easy way (subclassing AVURLAsset)
- Create
DVURLAsset. - Implement
DVURLAsset's loaderDelegate.
Manual way (without subclassing)
- Create
DVAssetLoaderDelegateobject using URL for AVURLAsset. - Set
DVAssetLoaderDelegatedelegate for receiving cache data. - Before creating
AVURLAsset, change URL scheme to[DVAssetLoaderDelegate scheme]. - Create
AVURLAssetwith URL with updated scheme. - Set
AVURLAsset's resource loader delegate to createdDVAssetLoaderDelegateobject.
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()];
Installation
DVAssetLoaderDelegate is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'DVAssetLoaderDelegate'
Author
vdugnist, [email protected]
License
DVAssetLoaderDelegate is available under the MIT license. See the LICENSE file for more info.