我正在同步地使用next代码片段来loadValues,因此loading = NO会触发。我对AVAssetExportSession exportAsynchronously也有同样的问题。--不仅仅是在设备上工作。
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]];
求你了救命!我的大脑正在融化。
发布于 2012-03-31 18:21:02
下面是我使用的代码:
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
}];
我不使用任何选择或任何类似性质的东西。我相信你已经看到了苹果的文档例子:
https://stackoverflow.com/questions/7283786
复制相似问题