Получение первого кадра захваченного видео в iOS 5.0+
Раньше мое приложение могло получать первый видеокадр, используя приведенный ниже код - работает для iOS 4.0+. Но как только мое устройство обновляется до iOS 5.0.1, возвращаемое изображение всегда равно NULL.
+(UIImage *)fFirstVideoFrame:(NSString *)path
{
MPMoviePlayerController *mp = [[MPMoviePlayerController alloc]
initWithContentURL:[NSURL URLWithString:path]];
UIImage *img = [mp thumbnailImageAtTime:0.0
timeOption:MPMovieTimeOptionNearestKeyFrame];
[mp stop];
[mp release];
return img;
}
Кто-нибудь знает, как получить видеокадры в iOS 5.0+? Благодарю.
1 ответ
Вот почему (из MPMoviePlayerController
документация):
Поведение в iOS 4.3 и ранее
В iOS 4.3 и более ранних версиях новый проигрыватель фильмов был автоматически подготовлен для воспроизведения. Начиная с iOS 5.0, чтобы упростить управление воспроизведением, новый проигрыватель фильмов автоматически не готов к воспроизведению. Смотрите обсуждение для
initWithContentURL:
метод экземпляра.
Обсуждение говорит, частично:
.. Чтобы подготовить новый проигрыватель фильмов для воспроизведения, позвоните в
prepareToPlay
метод..Чтобы получать уведомления о готовности нового проигрывателя фильмов, зарегистрируйтесь на
MPMoviePlayerLoadStateDidChangeNotification
уведомление. Затем вы можете проверить состояние нагрузки, открывloadState
имущество.
Как только фильм будет готов к воспроизведению, вы можете запросить у него миниатюрные изображения.