2012-03-05 3 views
0

私はUIImagePickerControllerUIViewControllerにロードする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. 

私は何も影響がありませんこれは、後に以下を呼び出してみた:私は、再びUIIViewControllerUIImagePickerControllerを追加しようとしたその

myImagePicker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType: UIImagePickerControllerSourceTypeCamera]; 
[myImagePicker setSourceType:UIImagePickerControllerSourceTypeCamera]; 

を素晴らしいフリーズアップを引き起こしました。

最後に、UIViewController's[super didReceivedMemoryWarning]の行をdidReceivedMemoryWarningとコメントしてみました。それも効果がなかった。

私はが何かを引き継ぐと思います。UIImagePickerも必要です。どのように私はそれを返すのですか?

答えて

0

UIImagePickerControllerを表示する前にMPMoviePlayerControllerをnilに設定することをお勧めします。どちらもムービープレーヤビューを含んでいますが、アプリケーションのインターフェイスでは、一度に1つのムービープレーヤビューしか表示できません。したがって、彼らはお互いに干渉することができます、そして、それはあなたに起こっているものかもしれません。

関連する問題