当我尝试通过AVCaptureVideoDataOutput:setSampleBufferDelegate选择器处理单个帧时,尝试从使用前置摄像头切换到使用后置摄像头时,我遇到了一个有趣的问题。相机交换工作和我正在显示的预览屏幕看起来很棒,只是我捕获的结果帧不再处于纵向模式,它们处于横向状态。此外,从前面交换到后置摄像头将导致后置摄像头捕获景观帧。我怀疑,因为在这种情况下,当我交换输入时,某些事情变得搞砸了 - 这不是输入不正确。我通过使用前置摄像头启动AVCaptureSession验证了这一理论 - 传递给缓冲区代表的帧正确处于纵向模式。我也玩过明确停止AVCaptureSession,同时交换设备输入,结果没有区别。
我从AVCam演示中汲取灵感。该代码与我之间的可疑差异是它记录到AVCaptureMovieFileOutput - 它不处理单个帧。
有什么想法吗?当我换出设备输入时,为什么发送到处理器的帧的方向会发生变化?
感谢您的回复!
答案 0 :(得分:0)