У меня есть приложение для iPhone, где я загружаю UIImagePickerController
в UIViewController
.Затем у меня есть пользовательский вид сверху камеры.Теперь, когда пользователь делает фотографию, она загружается в UIImageView
, который представляет ее пользователю, спрашивающему, хотите ли вы использовать эту фотографию или сделать другую (удаляя изображение из UIImageView
).Это прекрасно работает.
Теперь, если пользователь только что записал видео, я хотел бы сделать предварительный снимок где-нибудь в видео и представить его как статическое изображение в том же UIImageView
.Я делаю это с помощью следующего кода:
MPMoviePlayerController *videoPlayer = [[MPMoviePlayerController alloc] init];
videoPlayer.shouldAutoplay = NO;
[videoPlayer setContentURL:[info valueForKey:UIImagePickerControllerMediaURL]];
UIImage *videoScreenShot = [videoPlayer thumbnailImageAtTime:(videoPlayer.duration/2.0) timeOption:MPMovieTimeOptionNearestKeyFrame];
photoPreview.image = videoScreenShot;
[videoPlayer release]
Это работает как задумано.Проблема в том, если я хочу снять другое видео.Когда я звоню:
[videoPlayer setContentURL:[info valueForKey:UIImagePickerControllerMediaURL]];
Затвор камеры закрывается, и камера, по-видимому, отклоняется.Попытка сделать снимок или запись видео дает мне:
UIImagePickerController: ignoring request to take picture; camera is not yet ready.
UIImagePickerController: ignoring request to start video capture; camera is not yet ready.
Я попытался вызвать следующее после, но безрезультатно:
myImagePicker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType: UIImagePickerControllerSourceTypeCamera];
[myImagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
Я попытался добавить UIImagePickerController
к UIIViewController
снова, что вызвало фантастические зависания.
Наконец я попытался закомментировать строку UIViewController's
[super didReceivedMemoryWarning]
didReceivedMemoryWarning
.Который также не имел никакого эффекта.
Я предполагаю, что MPMoviePlayerController
берет на себя то, что UIImagePicker
также нуждается.Как я могу вернуть его обратно?