私はUIImagePickerController
をUIViewController
にロードするiPhoneアプリを持っています。私はカメラの上にカスタムビューを持っています。ユーザーが写真を撮ると、それはUIImageView
にロードされ、写真を使用するかどうかを尋ねるユーザーに提示したり、別の写真を撮ったりします(UIImageView
から画像を削除します)。これは完全に機能します。MPMoviePlayerControllerは私のUIImagePickerControllerを破棄します
今ユーザがビデオを録画したばかりのときに、ビデオのどこかでスナップショットプレビューを撮り、それを同じ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.
私は何も影響がありませんこれは、後に以下を呼び出してみた:私は、再びUIIViewController
にUIImagePickerController
を追加しようとしたその
myImagePicker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType: UIImagePickerControllerSourceTypeCamera];
[myImagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
を素晴らしいフリーズアップを引き起こしました。
最後に、UIViewController's
[super didReceivedMemoryWarning]
の行をdidReceivedMemoryWarning
とコメントしてみました。それも効果がなかった。
私はが何かを引き継ぐと思います。UIImagePicker
も必要です。どのように私はそれを返すのですか?