如何获得有关在AVCaptureDevice上已建立帧速率更改的通知?

时间:2019-01-25 20:29:35

标签: swift frame-rate avcapturedevice

根据显示不同视频过滤器所需的工作量,iOS应用程序中的帧速率不同。我注意到帧速率尚未立即建立,这可能会对设备的CPU和电池寿命产生巨大影响。我设置了 activeVideoMinFrameDuration activeVideoMaxFrameDuration 。当它们实际建立时,是否有办法获得通知,因此我可以在设置视频过滤器之前提前设置帧速率?

let framesPerSec = filter.fps

do {
    try device!.lockForConfiguration()
    let timeValue = Int64((framesPerSec * 100) / framesPerSec)
    let timeScale: Int64 = Int64(framesPerSec * 100)

    device?.activeVideoMinFrameDuration = CMTimeMake(value: timeValue, timescale: Int32(timeScale))
    device?.activeVideoMaxFrameDuration = CMTimeMake(value: timeValue, timescale: Int32(timeScale))

    device!.unlockForConfiguration()

} catch {
    print("\(error.localizedDescription)")
}

0 个答案:

没有答案