[英]Dismissing of UIImagePickerController dismisses presenting view controller also
[英]MPMoviePlayerController dismisses my UIImagePickerController
我有一個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
,這導致了一些UIIViewController
凍結。
最后,我想注釋掉UIViewController's
[super didReceivedMemoryWarning]
的線didReceivedMemoryWarning
。 這也沒有效果。
我猜MPMoviePlayerController
接管了UIImagePicker
也需要的東西。 我該如何退還?
我建議在顯示UIImagePickerController之前將MPMoviePlayerController設置為nil,或者暫時將其視圖移出接口。 這兩個都包含一個電影播放器視圖,但是在您的應用程序界面中一次只能有一個電影播放器視圖。 因此它們可能會相互干擾,這可能就是您正在發生的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.