iOS 慢动作记录

iOS Slow Motion Record

我正在尝试制作自定义录像机 iPhone 应用程序,我需要支持 240 fps。但是,当我将 AVCaptureDevice 设置为使用格式和 activeVideoMaxFrameDuration 时,整个视频视图就会冻结。如果我用60fps、120fps,一切正常,完全没有问题。

对于输出部分,我使用的是 AVCaptureMovieFileOutput,如果重要的话,我还设置了曝光自动对焦模式。

[self.videoConnection setPreferredVideoStabilizationMode:AVCaptureVideoStabilizationModeOff];

if ([self.videoDevice isExposureModeSupported:AVCaptureExposureModeAutoExpose] &&
    [self.videoDevice lockForConfiguration:&error]) {

    [self.videoDevice setExposureMode:AVCaptureExposureModeContinuousAutoExposure];

    [self.videoDevice unlockForConfiguration];
}

if ([self.videoDevice isFocusModeSupported:AVCaptureFocusModeAutoFocus] &&
    [self.videoDevice lockForConfiguration:&error]) {

    [self.videoDevice setFocusMode:AVCaptureFocusModeContinuousAutoFocus];

    [self.videoDevice unlockForConfiguration];

}

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

    [self tapInView:nil];

});

解决方法与自动对焦和曝光有关。当设备的相机处于 120/240fps 模式时,我们需要禁用手动对焦和曝光,但仍然保持自动对焦和自动曝光。这将防止相机冻结