Вы говорите об использовании вызовов для создания того, что 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
каждый раз, когда создается новое изображение. Вы можете настроить наблюдателя для наблюдения за этим и обработки изображения — я оставлю вас, чтобы вы сами поработали над этим!
person
h4xxr
schedule
16.11.2010