2012-12-26 66 views

回答

7

您可以使用AVCaptureConnectionvideoMinFrameDuration訪問器來設置值。

AVCaptureConnection documentation

考慮outputAVCaptureVideoDataOutput對象。

AVCaptureConnection *conn = [output connectionWithMediaType:AVMediaTypeVideo]; 

if (conn.isVideoMinFrameDurationSupported) 
    conn.videoMinFrameDuration = CMTimeMake(1, CAPTURE_FRAMES_PER_SECOND); 
if (conn.isVideoMaxFrameDurationSupported) 
    conn.videoMaxFrameDuration = CMTimeMake(1, CAPTURE_FRAMES_PER_SECOND); 

更多信息,請參閱我的答案在這SO question

+0

我同意你 –

+0

我的fps是否保證不會低於我的最小/最大值?我如何獲得當前的實際fps,而不是最小和最大? –

+0

@TylerPfaff你找到了你的問題的答案? – Crashalot

10

AVCaptureConnection's videoMinFrameDuration已被棄用。

您可以使用AVCaptureDevice屬性檢測支持的視頻幀速率範圍,並可以使用屬性分配最小和最大幀速率。

device.activeFormat.videoSupportedFrameRateRanges返回設備支持的所有視頻幀速率範圍。

device.activeVideoMinFrameDurationdevice.activeVideoMaxFrameDuration可用於指定幀持續時間。