2012-03-05 44 views
0

我有一个iPhone应用程序,我将UIImagePickerController加载到UIViewController上。然后我在相机的顶部有一个自定义的视图。现在,当用户拍摄照片时,它会被加载到一个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. 

我已经打过电话后以下,其中有没有效果:再次

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

我尝试添加了UIImagePickerControllerUIIViewController,这造成了一些奇妙的冻结。

最后我试着注释掉didReceivedMemoryWarningUIViewController's[super didReceivedMemoryWarning]行。这也没有效果。我想接管UIImagePicker也需要。我该如何回馈?

回答

0

我会建议您在显示UIImagePickerController之前将您的MPMoviePlayerController设置为零,或者可能暂时将其视图从界面中取出。这两个都包含一个电影播放器​​视图,但在应用程序界面中一次只能有一个电影播放器​​视图。因此,他们可以互相干扰,这可能是发生在你身上的事情。

相关问题