AVURLAsset loadValuesAsynchronouslyForKeys: завершение Handler: никогда не срабатывает на устройстве
Я использую следующий фрагмент для синхронной загрузки значений, поэтому загрузка = НЕТ никогда не срабатывает. И у меня та же проблема с экспортом AVAssetExportSession в асинхронном режиме. Это все не работает только на устройстве.
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]];
Пожалуйста помоги! Мой мозг тает.
1 ответ
Вот код, который я использую:
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
}];
Я не использую никаких опций или чего-то подобного. Я уверен, что вы видели пример документации Apple: