Я хотел бы асинхронно загрузить продолжительность, время (временная метка, когда было создано видео) и языковой стандарт объекта.
Весь пример кода показанный Apple для использования 'loadValuesAsynchronouslyForKeys: keys'
всегда отображается только с одним ключом. например:
NSURL *url = aUrl;
AVAsset asset = [[AVURLAsset alloc] initWithURL:url options:nil];
NSArray *keys = [NSArray arrayWithObject:@"duration"];
[asset loadValuesAsynchronouslyForKeys:keys completionHandler:^() {
NSError *error = nil;
AVKeyValueStatus durationStatus = [asset statusOfValueForKey:@"duration" error:&error];
switch (durationSatus) {
case AVKeyValueStatusLoaded:
// Read duration from asset
CMTime assetDurationInCMTime = [asset duration];
break;
case AVKeyValueStatusFailed:
// Report error
break;
case AVKeyValueStatusCancelled:
// Do whatever is appropriate for cancelation
}
}];
Могу ли я предположить, что если статус одного элемента - «AVKeyValueStatusLoaded», другие значения могут быть прочитаны одновременно в блоке завершения? т.е.:
[asset tracks]
[asset commonMetadata];
[asset duration]