我有以下代码在 iOS 7 中不再适用,用于在捕获会话仍在运行(但不捕获视频)时更改它的 sessionPreset。这适用于 iOS 6.x,但在 7 上视频预览冻结。
我试过删除开始/提交配置,以及锁定输入设备并在之后解锁。我也尝试在 commitConfiguration 之后再次调用 beginSession,但这会导致设备开始捕获视频。
这是一个错误还是我做错了什么?
- (void)setVideoCaptureSessionPreset:(NSString *)videoCaptureSessionPreset
{
if (_captureSession.sessionPreset == videoCaptureSessionPreset) return;
if (![_captureSession canSetSessionPreset:videoCaptureSessionPreset])
{
TFLog(@"%s Device cannot set preset to: %@", __PRETTY_FUNCTION__, videoCaptureSessionPreset);
return;
}
[_captureSession beginConfiguration];
_captureSession.sessionPreset = videoCaptureSessionPreset;
[_captureSession commitConfiguration];
}
编辑:这不仅会导致视频预览冻结,还会导致整个手机锁定(背景不再显示在主屏幕上,应用程序无法重启,最终整个手机必须硬重置)。