2012-12-26 13 views

Odpowiedz

7

Możesz użyć akcesora AVCaptureConnection do ustawienia wartości.

Zobacz AVCaptureConnection documentation

Rozważmy output być AVCaptureVideoDataOutput przedmiot.

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); 

Więcej informacji, zobacz moją odpowiedź w tym SO question

+0

Zgadzam się z Tobą –

+0

Czy moje fps mają gwarancję, że nie spadną poniżej moich wartości minimalnych/maksymalnych? Jak mogę uzyskać bieżące rzeczywiste fps, a nie min i max? –

+0

@TylerPfaff znalazłeś odpowiedź na swoje pytanie? – Crashalot

10

AVCaptureConnection's videoMinFrameDuration jest przestarzała.

Można użyć właściwości AVCaptureDevice do wykrywania obsługiwanych zakresów szybkości klatek wideo i można przydzielić właściwości minimalną i maksymalną liczbę klatek na sekundę.

device.activeFormat.videoSupportedFrameRateRanges zwraca wszystkie zakresy szybkości klatek wideo obsługiwane przez urządzenie.

i device.activeVideoMaxFrameDuration może być używany do określania czasu trwania ramki.