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

时间:2015-01-07 23:12:25

标签: 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()

我已检入AVCaptureDeviceFormat videoSupportedFrameRateRanges minFrameRate,应支持每秒10帧。

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

提前感谢您提供任何帮助

1 个答案:

答案 0 :(得分:2)

我认为您应该在捕获会话开始运行后更改设备配置,以使其生效。 我希望这对您有用,对我也一样。 欢呼 =)