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

你沒有得到我的問題。無論如何,我找到了解決辦法 –

相關問題