A CMTime
struct represents a length of time that is stored as rational number (see CMTime Reference). CMTime
has a value
and a timescale
field, and represents the time value/timescale seconds
.
CMTimeMake
is a function that returns a CMTime
structure, for example:
CMTime t1 = CMTimeMake(1, 10); // 1/10 second = 0.1 second
CMTime t2 = CMTimeMake(2, 1); // 2 seconds
CMTime t3 = CMTimeMake(3, 4); // 3/4 second = 0.75 second
CMTime t4 = CMTimeMake(6, 8); // 6/8 second = 0.75 second
The last two time values t3
and t4
represent the same time value, therefore
CMTimeCompare(t3, t4) == 0
If you set the videoMinFrameDuration
of a AVCaptureSession
is does not make a difference if you set
connection.videoMinFrameDuration = CMTimeMake(1, 20); // or
connection.videoMinFrameDuration = CMTimeMake(2, 40);
In both cases the minimum time interval between frames is set to 1/20 = 0.05 seconds.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…