I use the following snippet for loadValues synchronously, so loading = NO never works. And I have the same problem with AVAssetExportSession exportAsynchronously. All this does not work only on the device.
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]];
Please, help! My brain is melting.
source share