Ответ 1
Вы говорите об использовании вызовов для создания того, что Apple вызывает уменьшенные изображения из видео в определенное время.
Для MPMoviePlayerController (то, что IOS использует для хранения видео из файла или другого источника), для этого есть две команды. Первая генерирует один эскиз (изображение) из фильма в определенный момент времени, а второй генерирует набор миниатюр для диапазона времени.
Этот пример получает изображение через 10 секунд в мувиклип, myMovie.mp4:
MPMoviePlayerController *movie = [[MPMoviePlayerController alloc]
initWithContentURL:[NSURL URLWithString:@"myMovie.mp4"]];
UIImage *singleFrameImage = [movie thumbnailImageAtTime:10
timeOption:MPMovieTimeOptionExact];
Обратите внимание, что это выполняется синхронно - то есть пользователь будет вынужден ждать, пока вы получите скриншот.
Другой вариант - получить серию изображений из фильма из массива раз:
MPMoviePlayerController *movie = [[MPMoviePlayerController alloc]
initWithContentURL [NSURL URLWithString:@"myMovie.mp4"]];
NSNumber time1 = 10;
NSNumber time2 = 11;
NSNumber time3 = 12;
NSArray *times = [NSArray arrayWithObjects:time1,time2,time3,nil];
[movie requestThumbnailImagesAtTimes:times timeOption:MPMovieTimeOptionExact];
Этот второй способ вызовет уведомление типа MPMoviePlayerThumbnailImageRequestDidFinishNotification
каждый раз при создании нового изображения. Вы можете настроить наблюдателя, чтобы контролировать это и обрабатывать изображение - я оставлю вас работать, что выбивает самостоятельно!