Wednesday 15 February 2012

ios - AVAssetResourceLoader delegate not set -



ios - AVAssetResourceLoader delegate not set -

i've been trying implement avassetresourceloaderdelegate far have been unable set delegate, causing delegate code never called.

consider this:

avurlasset *asset = [avurlasset urlassetwithurl:url options:nil]; [asset.resourceloader setdelegate:[[myassetresourceloaderdelegatecode alloc] init] queue:queue]; nslog(@"delegate: %@", asset.resourceloader.delegate);

this code prints delegate: (null). how set delegate when delegate refuses set? missing?

this occurs on simulator , on iphone 5s running ios 8.

the delegate associate object must adopt avassetresourceloaderdelegate protocol. code should this:

@interface yourclass () <avassetresourceloaderdelegate> @end @implementation yourclass - (void)somemethod { nsurl *url = [nsurl urlwithstring:@"...."]; avurlasset *asset = [avurlasset urlassetwithurl:url options:nil]; [asset.resourceloader setdelegate:self queue:queue]; } #pragma mark - avassetresourceloaderdelegate methods - (bool)resourceloader:(avassetresourceloader *)resourceloader shouldwaitforloadingofrequestedresource:(avassetresourceloadingrequest *)loadingrequest { } @end

or

if have separate delegate myassetresourceloaderdelegatecode somewhere have maintain strong reference object myassetresourceloaderdelegatecode created , pass delegate. when [asset.resourceloader setdelegate:... resourceloader have weak reference object made. so, code can be:

@property (nonatomic, strong) myassetresourceloaderdelegatecode *assetobject; self.assetobject = [myassetresourceloaderdelegatecode new]; [asset.resourceloader setdelegate:self.assetobject ...];

ios objective-c iphone delegates avfoundation

No comments:

Post a Comment