
рд╣реЗрд▓реЛ, рд╣реЗрдмреНрд░! рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк CMME рдХреА рд╕рдордЭ рдФрд░ рдЖрд╡реЗрджрди рдкрд░
рд╡рд╛рд░реЗрди рдореВрд░ рдХреЗ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкрдврд╝реЗрдВред
рд╡реАрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдореЗрд░реА рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдореЗрдВ, рдореИрдВрдиреЗ рдЗрди рдЕрджреНрднреБрдд рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрд╛рдд рдХрд░рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ред рдореБрдЦреНрдп рд╕рдордп рд╕реАрдПрдордЯрд╛рдЗрдо рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реБрдП, рд╕рдордп рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдорд╣рддреНрд╡ рдкрд░ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рд╕рдордп рдХреЗ рдЖрдХрд▓рди рдХрд╛ рдорд╣рддреНрд╡ рдФрд░ рд╕рдЯреАрдХрддрд╛
рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рдордп рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЪрд░рдо рдорд╛рдорд▓реЗ рдХреЛ рд▓реЗрдВ, рд╢рд╛рдпрдж рдЖрдк рдПрдХ рдУрд▓рдВрдкрд┐рдХ рдзрд╛рд╡рдХ рд╣реИрдВ рдЬреЛ рд╕реМ рдореАрдЯрд░ рдХреА рджреМрдбрд╝ рдореЗрдВ рдЖрдкрдХреА рдЧрддрд┐ рдФрд░ рд╡рд┐рд╢реНрд╡ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдмреАрдЪ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдЕрдВрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИред рдпреЗ рдкрд░рд┐рдгрд╛рдо рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИрдВред рдлрд┐рд░ рднреА, рдЬрдм рд╕рдордп рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓рддреА рд╣реИ, рддреЛ рд╣рдо рдмрд╣реБрдд рдХрдо рдЕрдВрддрд░рд╛рд▓ (рджрд╕рд┐рдпреЛрдВ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб) рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдпреЗ рдЦрдВрдб рдХрдИ рджрд┐рдиреЛрдВ рдпрд╛ рд╣рдлреНрддреЛрдВ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рдХрд┐рд╕реА рдлрд┐рд▓реНрдо рдореЗрдВ рд╕рдЯреАрдХ рдлреНрд░реЗрдо рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
35:06 рдкрд░ ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбрдмрд▓-рд╕рдЯреАрдХ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордп рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдиреБрднрд╡рд╣реАрди рд╣реЛрдЧрд╛:
NSTimeInterval t = 2106.0;
рдЕрдХреНрд╕рд░, рдЗрд╕ рддрд░рд╣ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╕рдорд╕реНрдпрд╛ рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдЫреЛрдЯреЗ рдШрдЯрдХреЛрдВ рдореЗрдВ рдХреБрдЪрд▓рдиреЗ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд▓рдВрдмреЗ рдЕрдВрддрд░рд╛рд▓ рдХреА рдмрд╛рдд рдЖрдиреЗ рдкрд░ рдпрд╣ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рд╕рдВрдЦреНрдпрд╛ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдбрдмрд▓ рдореЗрдВ 16 (рджрд╢рдорд▓рд╡ рдореЗрдВ) рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрдХ рдЖрда рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:
sizeof(NSTimeInterval) == sizeof(Float64) == sizeof(double) == 8
рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдирдВрдмрд░ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдПрдХрдЬреБрдЯ рд╣реЛрддреЗ рд╣реИрдВ: рджреЛрд╣рд░рд╛рдпрд╛ рд╕рдВрдЪрд╛рд▓рди (рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЧреБрдгрди, рдЖрджрд┐) рдПрдХ рдЕрд╢реБрджреНрдзрд┐ рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╡рд┐рд╕рдВрдЧрддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред рдФрд░ рдпрд╣, рдмрджрд▓реЗ рдореЗрдВ, рд╕реВрдЪрдирд╛ рдХреА рдХрдИ рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддрд╛ рд╣реИред
рд╕рд░рд▓рддрдо рдЙрджрд╛рд╣рд░рдгрдПрдХ рд▓рд╛рдЦ рддрддреНрд╡реЛрдВ рдХреЛ 0.000001 рдХреЗ рдмрд░рд╛рдмрд░ рдЬреЛрдбрд╝рдХрд░, рд╣рдо 1.0000000000079181 рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред рддреНрд░реБрдЯрд┐ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ 1e-6 рдХреЛ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдкреНрд░рд╛рд░реВрдк (рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛) рдореЗрдВ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╣рдо рдПрдХ рдмрд╛рдЗрдирд░реА рд╕рдиреНрдирд┐рдХрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯреНрд╕ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рддреНрд░реБрдЯрд┐ рдЗрддрдиреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм HTTP рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рдХрдИ рд╣рдЬрд╛рд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдмрдврд╝ рдЬрд╛рддреА рд╣реИред
рдпрд╣ рд╡рд╣реА рд╣реИ рдЬрд┐рд╕рдиреЗ рд╣рдореЗрдВ рд╕рдордп рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдмрд┐рдВрджреБ рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЗрд╕ рдЕрд╢реБрджреНрдзрд┐ (рдХрдареЛрд░ рджреМрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рд╕рдордп рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред
рддрд░реНрдХрд╕рдВрдЧрдд рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордп
рдореИрдХ рдУрдПрд╕ рдФрд░ рдЖрдИрдУрдПрд╕ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрдкреНрдкрд▓ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдХрдИ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ рд╣реИрдВред рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ 10.7 рдФрд░ рдЖрдИрдУрдПрд╕ 4 рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде, рджреЛ рдФрд░ рдЬреЛрдбрд╝реЗ рдЧрдП:
CMTime CMTimeRange
рдкрд╣рд▓реЗ рдПрдХ рдХрд╛ рдкрддрд╛
рд▓рдЧрд╛рдХрд░ , рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рджреВрд╕рд░реЗ рдХреЛ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдкрд╛рдардХ
рд╕реАрдПрдордЯрд╛рдЗрдо рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдЧрд╛ред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, CMTime рдЪрд╛рд░ рд╕рджрд╕реНрдпреАрдп рд╕рдВрд░рдЪрдирд╛ рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
typedef struct { CMTimeValue value; CMTimeScale timescale; CMTimeFlags flags; CMTimeEpoch epoch; } CMTime;
рдЕрдЧрд▓рд╛, рд╣рдо
рдореВрд▓реНрдп рдФрд░
рд╕рдордп-рд╕реАрдорд╛ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди
рдЭрдВрдбреЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп
рд╣реИрдВ ред рдЭрдВрдбреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдореВрд▓реНрдп рд╣рдореЗрдВ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк (
рдЗрд╕рдХреЗ рдмрд╛рдж рдХрд╛ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ ) рдЕрдирдВрдд рдХреЗ рдкреНрд▓рд╕ рдпрд╛ рдорд╛рдЗрдирд╕ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЗрд╕реЗ рдХреБрдЫ рдЧрдгрдирд╛рдУрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЧреЛрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдВрд░рдЪрдирд╛
NSTimeInterval рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЕрднрд┐рд╡реНрдпрдВрдЬрдХ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдХрдИ рдлрд╛рдпрджреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ
CMTime рдореЗрдВ рдХреНрдпрд╛ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛
рдЧрдпрд╛ рд╣реИ ?
рдпрд╣ рд╕рдордЭрдирд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХрд┐
рдореВрд▓реНрдп рдФрд░
рдЯрд╛рдЗрдорд╕реЗрд▓ рдХреНрд░рдорд╢рдГ рдкреВрд░реНрдгрд╛рдВрдХ: 64 рдФрд░ 32 рдмрд┐рдЯреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВред рдпрд╣ рдКрдкрд░ рджрд┐рдП рдЧрдП рдкрд╛рда рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐
рдореВрд▓реНрдп рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдП рдЧрдП рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рдорд╛рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рднрд╛рдЬрдХ рдХреЛ рдХреБрд▓ 64 рдмрд┐рдЯреНрд╕ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдХреЗ, рд╣рдо рд╕рдВрднрд╛рд╡рд┐рдд
рдЯрд╛рдЗрдорд╕реНрдХреЗрд▓ рдорд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП 19 рджрд╢рдорд▓рд╡ рдЕрдВрдХреЛрдВ рддрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЯрд╛рдЗрдорд╕реНрдХреЗрд▓ рдХреНрдпрд╛ рд╣реИ? рдпрд╣ "рд╕реНрд▓рд╛рдЗрд╕" рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдХрдВрдб рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╕реНрддреБ рдХреЗ CMTime рдХреА рд╕рдЯреАрдХрддрд╛ рдЗрд╕ рдореВрд▓реНрдп рддрдХ рд╕реАрдорд┐рдд рд╣реИред
рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдгрдпрджрд┐ рдЯрд╛рдЗрдорд╕реНрдХреЗрд▓ рдорд╛рди 1 рд╣реИ, рддреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдПрдХ рд╕реЗрдХрдВрдб рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЪрд░рдг рднреА рдПрдХ рд╕реЗрдХрдВрдб рд╣реЛрдЧрд╛ред рдЗрд╕реА рддрд░рд╣, рдпрджрд┐ рд╕рдордп-рд╕реАрдорд╛ = 1000 , рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдХрдВрдб рдХреЛ 1000 рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдореВрд▓реНрдп рдореЗрдВ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реЛрдЧреА рдЬрд┐рд╕реЗ рд╣рдо рдирд╛рдорд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдПрдХ рдЙрдЪрд┐рдд
рд╕рдордпрд╕реАрдорд╛ рдХрд╛ рдЪрдпрди рдХреИрд╕реЗ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдПрдХ рдлрд╕рд▓реА рдЯреБрдХрдбрд╝рд╛ рди рдорд┐рд▓реЗ? Apple рд╡реАрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП 600 рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рддрд╛ рд╣реИ (рдпрд╣ рдмрддрд╛рддреЗ рд╣реБрдП рдХрд┐ 600 24, 25 рдФрд░ 30 рдлреНрд░реЗрдо рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡реАрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реИ)ред рдпрджрд┐ рдЖрдк рдСрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рд╕рдЯреАрдХ рдЕрдиреБрдХреНрд░рдордг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдорд╛рди 60,000 рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ 64-рдмрд┐рдЯ
рдореВрд▓реНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдХреНрдпрд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐
рдЖрдк рдЗрд╕ рдкрде рдХреЗ рд╕рд╛рде
рдПрдХ рд╕реЗрдХрдВрдб рдХреЗ
1/60000 рдХреЗ рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдореЗрдВ 5.8 рдорд┐рд▓рд┐рдпрди рд╡рд░реНрд╖реЛрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред
рдПрдХ рд╕рдордп
рдЕрд╡рдзрд┐ рдореЗрдВ рд╕реЗрдХрдВрдб рдХреА рд╕рдВрдЦреНрдпрд╛
t.value / t.timescale рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИред рдЖрдк рдЕрдзрд┐рдХрддрдо рд╕рдордп рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╕реАрдПрдордЯрд╛рдЗрдо рдХреЛ
рдлреНрд▓реЛрдЯ64 рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП
CMTimeGetSeconds рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдирд╣реАрдВ-рддреЛ-рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХреЗ
CMTimeGetSeconds рдПрдХ рджреЛрд╕реНрддрд╛рдирд╛ рдФрд░ рдЙрдкрдпреЛрдЧреА рддрд░реАрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмреБрд░реЗ рдЬреБрдбрд╝рд╡рд╛рдВ рднрд╛рдИ,
CMTimeMakeWithSeconds рд╣рдорд╛рд░реЗ рднрд╛рдИ рдХреЗ рд▓рд┐рдП рдЗрддрдиреЗ рдЕрдиреБрдХреВрд▓ рд╣реЛрдиреЗ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИрдВ:
CMTime CMTimeMakeWithSeconds ( Float64 seconds, int32_t preferredTimeScale );
рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкрд╣рд▓реА рдмрд╛рд░, рдореБрдЭреЗ рд╡рд╣ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЬреЛ рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ (
рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рджрдХ , рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг)ред рдЕрдм рдЬрдм рд╣рдо
CMTime рдХреЗ рд╕рднреА
рдЗрдВрд╕рд┐рдбреЗрдВрд╕ рд╕реЗ
рдЪрд▓ рдЪреБрдХреЗ рд╣реИрдВ , рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдореЗрд░реА рдЧрд▓рддрд┐рдпреЛрдВ рдХреЛ рд╕рдордЭреЗрдВрдЧреЗред рдореИрдВрдиреЗ рдПрдХ
AVPlayer рдСрдмреНрдЬреЗрдХреНрдЯ (MP3 рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ) рд╕реЗ рдЖрд╡рдзрд┐рдХ рдХреЙрд▓рдмреИрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 0.5 рд╕реЗрдХрдВрдб рдореЗрдВ рдПрдХ рджреГрд╢реНрдп рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред
рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА:
CMTime interval = CMTimeMakeWithSeconds(0.5, 1);
рдпрджрд┐ рдЖрдк рдЗрд╕ рдмрд┐рдВрджреБ рддрдХ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЕрдВрддрд░рд╛рд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╢реВрдиреНрдп рд╣реЛрдЧрд╛, 0.5 рдирд╣реАрдВред рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдЖрдзреА рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдереАред рд╣рдорд╛рд░реЗ
рдореВрд▓реНрдп рдХреЛ рдЫреЛрдЯрд╛
рдХрд░ рджрд┐рдпрд╛
рдЧрдпрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐
рдЯрд╛рдЗрдорд╕реНрдХреЗрд▓ рдпрд╣рд╛рдВ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдЯреАрдХ рдирд╣реАрдВ рд╣реИред
рдХреЛрд░ рдореАрдбрд┐рдпрд╛ рдПрдкреАрдЖрдИ рдореЗрдВ
рд╕реАрдПрдордЯрд╛рдЗрдо рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг, рддреБрд▓рдирд╛ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рд╕реЗрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
рд╕реАрдПрдордЯрд╛рдЗрдо рдкрд░ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рди рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рдЕрдЧрд░ рдЖрдк рд╕рдЯреАрдХрддрд╛ рдФрд░ рдЕрдЦрдВрдбрддрд╛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдФрд░ рдЧреЛрд▓рд╛рдИ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдРрд╕реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдиреЗ рдкрд░ CMTime рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рдЭрдВрдбреЗ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рджреЛ
CMTimes рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП,
CMTimeAdd рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП,
CMTimeCompare рдХрд╛ рдЙрдкрдпреЛрдЧ
рдХрд░реЗрдВ (рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд░рд┐рдЯрд░реНрди рдорд╛рди рдлрд╝рдВрдХреНрд╢рди рддреБрд▓рдирд┐рддреНрд░ рдХреЗ рд╕рдордЭреМрддреЗ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдорд╛рдирдХ C рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░
qsort рдирд╛рдо рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИ)ред
CMTime рд╕реЗ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП,
CMTimeMaximum рдХрд╛ рдЙрдкрдпреЛрдЧ
рдХрд░реЗрдВ ред рдмрд╛рдХреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рджреЗрдЦреЗрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╕реЗрдЯ рдЖрдорддреМрд░ рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рдЕрдирд┐рд╢реНрдЪрд┐рддрддрд╛рдУрдВ рдФрд░ рдЕрдирдиреНрддрддрд╛: рдЕрдкрдиреЗ "рдЕрдЬреАрдм" рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд░реЗрдВ
CMTime- рд╕рдВрдмрдВрдзрд┐рдд рд▓реЗрдЦ рдХрд╛ рдЕрдВрддрд┐рдо рднрд╛рдЧ рдЕрдирдВрдд рдЭрдВрдбреЗ, рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдореВрд▓реНрдпреЛрдВ рдФрд░ рдЧреЛрд▓рд╛рдИ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рд╣реИред рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдПрдХ рдРрд╕рд╛ рд╕рдордп рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореВрд▓реНрдп рдЕрдЬреНрдЮрд╛рдд рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдЖрд░рдВрдн рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕рдХреЗ рдмреАрддреЗ рд╣реБрдП рд╕рдордп рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХрд╛ рдРрд╕рд╛ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рдзреНрд╡рдЬ рдореВрд▓реНрдпреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:
kCMTimeFlags_PositiveInfinity kCMTimeFlags_NegativeInfinity kCMTimeFlags_Indefinite
рдЪреВрдВрдХрд┐ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдпрд╛ (рдореВрд▓ рдореЗрдВ, OR'ING) рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рд░ рдХрд┐рд╕реА рдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрди рдЭрдВрдбреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдореИрдХреНрд░реЛрдЬрд╝ рд╣реИрдВ:
CMTIME_IS_POSITIVE_INFINITY CMTIME_IS_NEGATIVE_INFINITY CMTIME_IS_INDEFINITE
рд╡реИрд╕реЗ, рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдордп рдЕрд╡рдзрд┐ рдХреА рд╡реИрдзрддрд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдЧрд░
рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдорд╛рдиреНрдп рдирд╣реАрдВ
рд╣реИ рддреЛ рдРрд╕реЗ рдСрдкрд░реЗрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо NO рд╣реЛрдЧрд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣рд╛рдВ рд╡рд┐рднрд┐рдиреНрди рд╕рдордп рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдЗрд╕рдХреА рдПрдХ рд▓рдВрдмреА рд╕реВрдЪреА рд╣реИ:
- рдПрдХ рдЕрдорд╛рдиреНрдп рд╕рдордп (рдЕрдорд╛рдиреНрдп рд╕рдордп) рдХрд┐рд╕реА рдЕрдиреНрдп рдЕрдорд╛рдиреНрдп рд╕рдордп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛, рдФрд░ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕рдордп рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛ред
- рд╕рд╛рде рд╣реА, рдЗрдиреНрдлрд┐рдирд┐рдЯреА (рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЕрдирдВрдд) рдХрд┐рд╕реА рднреА рдЕрдорд╛рдиреНрдп рд╕рдордп рд╕реЗ рдХрдо, рджреВрд╕рд░реЗ рдкреНрд▓рд╕ рдЗрдиреНрдлрд┐рдирд┐рдЯреА рдХреЗ рдмрд░рд╛рдмрд░ рдФрд░ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕рдордп рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛ред
- рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдХрд┐рд╕реА рднреА рдЕрдорд╛рдиреНрдп рд╕рдордп рд╕реЗ рдХрдо рд╣реЛрдЧрд╛, рд╕рд╛рде рд╣реА рдЕрдирдВрдд рд╕реЗ рдХрдо, рдЙрд╕реА рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдХреЗ рдмрд░рд╛рдмрд░, рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕рдордп рд╕реЗ рдЕрдзрд┐рдХред
- рдорд╛рдЗрдирд╕ рдЗрдирдлрд┐рдирд┐рдЯреА (рдиреЗрдЧреЗрдЯрд┐рд╡ рдЗрдирдлрд┐рдирд┐рдЯреА) рд╕рдорд╛рди рдФрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рд╣реЛрдЧреАред
рдЕрдм рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВредрдиреЛрдЯ:рдмреЗрд╢рдХ, рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рд╡рд┐рд╖рдп рдмрд▓реНрдХрд┐ рд╕рдВрдХреАрд░реНрдг рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рдХреБрдЫ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, RuNet рдореЗрдВ рд╕реВрдЪрдирд╛ рд╢реВрдиреНрдп рд╕реЗ рдереЛрдбрд╝реА рдХрдо рд╣реИред рд▓реЗрдЦрдХ рдХреА рд╕реНрд╡реАрдХреГрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рде рд╣реА рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЙрд╕реЗ рдореЗрд▓ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдирд╛ рдерд╛, рдФрд░ рдЕрдВрдд рдореЗрдВ рдореБрдЭреЗ рд╡рд╣реА рд╣реБрдЖ рдЬреЛ рд╣реБрдЖред рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рди рд▓рд┐рдЦреЗрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдЖрдВрддрд░рд┐рдХ рдореЗрд▓ рдкрд░ рднреЗрдЬреЗрдВ, рдзрдиреНрдпрд╡рд╛рджред