在Swift中的AVCaptureSession中设置AVCaptureDevice的低帧速率

Jon*_*ett 6 ios swift

我正在尝试使用Swift中的AVCaptureDevice捕获时设置每秒10帧的帧速率.

我相信这是通过设置AVCaptureDevice的activeVideoMaxFrameDuration来实现的,但也许我这样做是错误的,并且有不同的方式.

这是我当前的代码,它运行时没有错误,但对预览或捕获的视频中的帧速率没有任何影响,它仍然显示为全动态.

    var devices = AVCaptureDevice.devicesWithMediaType(mediaType);
    var captureDevice: AVCaptureDevice = devices[0] as AVCaptureDevice;

    captureDevice.lockForConfiguration(&error)

    captureDevice.activeVideoMinFrameDuration = CMTimeMake(1,10)
    captureDevice.activeVideoMaxFrameDuration = CMTimeMake(1,10)

    captureDevice.unlockForConfiguration()
Run Code Online (Sandbox Code Playgroud)

我已经检查了AVCaptureDeviceFormat videoSupportedFrameRateRanges minFrameRate并且应该支持每秒10帧.

将CMTime更改为videoSupportedFrameRateRanges之外的某些内容会引发错误,因此我知道代码正在使用,它只是没有效果.

在此先感谢您的帮助

小智 4

我认为您应该在捕获会话开始运行后更改设备配置才能使其生效。我希望这对你有用,就像对我一样。干杯=)