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
DVAssetLoaderDelegate
object using URL for AVURLAsset. - Set
DVAssetLoaderDelegate
delegate for receiving cache data. - Before creating
AVURLAsset
, change URL scheme to[DVAssetLoaderDelegate scheme]
. - Create
AVURLAsset
with URL with updated scheme. - Set
AVURLAsset
's resource loader delegate to createdDVAssetLoaderDelegate
object.
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.