Я не могу получить точное время CMTime для создания неподвижного изображения из 1,8-секундного видео

Каждый раз, когда я пытаюсь сгенерировать неподвижный кадр из своего видеоресурса, он генерируется за 0,000 .. секунд. Я вижу это из своего сообщения журнала. Хорошо то, что я могу получить изображение в момент времени 0,000 .. для отображения в UIImageView под названием «myImageView». Я думал, что проблема в том, что AVURLAssetPreferPreciseDurationAndTimingKey не был установлен, но даже после того, как я понял, как это сделать, он все еще не работает ..

Вот что у меня ...

time, actualTime и generate объявлены в заголовке

NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"Documents/videoTest4.m4v"]];
//UISaveVideoAtPathToSavedPhotosAlbum(path, self, @selector(video:didFinishSavingWithError:contextInfo:), nil);
NSURL *url = [NSURL fileURLWithPath:path];

NSDictionary *options = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:AVURLAssetPreferPreciseDurationAndTimingKey];
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:url options:options];

Float64 durationSeconds = CMTimeGetSeconds([asset duration]);

generate = [[AVAssetImageGenerator alloc] initWithAsset:asset];
NSError *err = nil;

time = CMTimeMake(600,600.0);
CGImageRef imgRef = [generate copyCGImageAtTime:time actualTime:&actualTime error:&err];
UIImage *currentImg = [[UIImage alloc] initWithCGImage:imgRef];
myImageView.image = currentImg;

NSLog(@"The total Video Duration is %f",durationSeconds);
NSLog(@"The time I want my image is %f",CMTimeGetSeconds(time));
NSLog(@"The actual time my image was take was %f",CMTimeGetSeconds(actualTime));

И моя консоль читает ...

2011-04-28 18: 49: 59.062 videoTest [26553: 207] Общая длительность видео составляет 1.880000

2011-04-28 18: 49: 59.064 videoTest [26553: 207] Время, когда я хочу, чтобы мое изображение было 1.000000

2011-04-28 18: 49: 59.064 videoTest [ 26553: 207] Фактическое время съемки моего изображения было 0,000000

..........................

Большое спасибо, ребята заранее ..:)

5
задан johntraver 28 April 2011 в 22:58
поделиться