2011-09-02 126 views
4

我正在使用下一个片段来同步loadValues,所以加载= NO从不触发。 而且我有与AVAssetExportSession exportAsynchronously相同的问题。 这一切都不能只在设备上工作。AVURLAsset loadValuesAsynchronouslyForKeys:completionHandler:永远不会在设备上触发

NSDictionary *options = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:AVURLAssetPreferPreciseDurationAndTimingKey]; 
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:URL options:options]; 

NSArray *keys = [NSArray arrayWithObjects:@"duration", @"tracks", nil]; 

__block bool loading = YES; 

[asset loadValuesAsynchronouslyForKeys:keys completionHandler:^(void) { 
      loading = NO; 
}]; 

while (loading)[[NSRunLoop currentRunLoop] runUntilDate:[[NSDate date] dateByAddingTimeInterval:0.5]]; 

请帮忙!我的大脑正在融化。

+0

的解决方案是使runloop运行,检查装载标志第二 –

+0

的每半请ellaborate..I现在面临同样的问题。 –

+0

嗨什么是解决方案? – souvickcse

回答

0

这里是我使用的代码:

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"intro" ofType:@"m4v"]]; 

    self.asset = [[AVURLAsset alloc] initWithURL:url options:nil]; 
    NSString *tracksKey = @"tracks"; 

    [self.asset loadValuesAsynchronouslyForKeys:[NSArray arrayWithObject:tracksKey] completionHandler:^{ 
// Other code here for AVPlayer 
}]; 

我不使用任何选项或自然的事情。我相信你已经看到了苹果的文档,例如:

http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/02_Playback.html

+0

你没有得到我的问题。无论如何,我找到了解决办法 –

相关问题