dva

DVAssetLoaderDelegate

Loader delegate for caching AVURLAsset

Showing:

Popularity

Downloads/wk

0

GitHub Stars

94

Maintenance

Last Commit

2yrs ago

Contributors

2

Package

Dependencies

0

License

MIT

Categories

Readme

DVAssetLoaderDelegate

Version License Platform

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)

  1. Create DVURLAsset.
  2. Implement DVURLAsset's loaderDelegate.

Manual way (without subclassing)

  1. Create DVAssetLoaderDelegate object using URL for AVURLAsset.
  2. Set DVAssetLoaderDelegate delegate for receiving cache data.
  3. Before creating AVURLAsset, change URL scheme to [DVAssetLoaderDelegate scheme].
  4. Create AVURLAsset with URL with updated scheme.
  5. Set AVURLAsset's resource loader delegate to created DVAssetLoaderDelegate 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, vdugnist@gmail.com

License

DVAssetLoaderDelegate is available under the MIT license. See the LICENSE file for more info.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100