在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之外的某些内容会产生错误,因此我知道代码正在使用,它只是没有效果。
提前感谢您提供任何帮助
答案 0 :(得分:2)
我认为您应该在捕获会话开始运行后更改设备配置,以使其生效。 我希望这对您有用,对我也一样。 欢呼 =)