UIImagePickerControllerCameraDeviceFront只能在其他时间工作

在我的应用程序中,我试图在UIImagePicker默认使用前置摄像头。 我知道,似乎很简单…

 imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceFront; 

现在,我第一次启动我的select器一切正常,前置摄像头被初始化,但是当选取器被解散,并再次提出使用后置摄像头。 从那里开始,如果我连续打开和closures选取器,相机使用将是:前,后,前,后,前,后…

我已经将这些代码剥离到了挑选器的基本原理中,试图隔离这个问题,并且它仍然存在。 有没有人遇到过这个问题? 任何指针或方向将不胜感激!

编辑:问题解决了! 我正在调用imagePicker = [[UIImagePickerController alloc] init];viewDidLoad而不是viewDidAppear

问题一定是你如何尝试初始化/提交/解雇你的控制器。

那么,为什么在相机之间来回呢?

由于某种原因,底层的AVCaptureSession似乎在控制器被解散之后保持运行。 所以下一次你提出它,它试图添加input,但它是bussy,所以去下一个可用(后方摄像头),中断自己(从而释放前一个),等等。