Ссылка CMTime
Этот документ описывает API для создания и управления CMTime
структуры.
CMTime
структуры являются ненепрозрачными непостоянными структурами, представляющими времена (или метки времени или продолжительности).
A CMTime
представлен как рациональное число, с числителем ( int64_t
значение), и знаменатель ( int32_t
масштаб времени). Концептуально, масштаб времени указывает часть секунды, которую занимает каждый модуль в числителе. Таким образом, если масштаб времени равняется 4, каждый модуль представляет четверть секунды; если масштаб времени равняется 10, каждый модуль представляет одну десятую секунды и т.д. В дополнение к простой временной стоимости CMTime может представлять нечисловые значения: +infinity, - бесконечность, и неопределенный. Используя флаг CMTime указывает, округлилось ли время в некоторый момент.
CMTimes
содержите номер эпохи, который обычно определяется к 0, но может использоваться для различения несвязанных временных шкал: например, это могло быть постепенно увеличено каждый раз через цикл представления, для дифференциации между временем N в цикле 0 со времени N в цикле 1.
Можно преобразовать CMTimes
к и от неизменного CFDictionaries (см. CFDictionaryRef
) использование CMTimeCopyAsDictionary
и CMTimeMakeFromDictionary
, для использования в аннотациях и различных Базовых контейнерах Основы.
Дополнительные функции для управления датами и временем описаны в Ссылке Утилит времени. Обратите внимание на то, что CMTime
разработан для временных шкал носителей тогда как функции в Time Utilities Reference
разработаны для работы с тактовым стеной временем в Базовой платформе Основы; см. также Ссылку Констант Основы AV.
-
Делает допустимое
CMTime
со значением и масштабом времени. Эпоха подразумевается, чтобы быть 0.Объявление
Swift
func CMTimeMake(_
value
: Int64, _timescale
: Int32) -> CMTimeObjective C
CMTime CMTimeMake ( int64_t value, int32_t timescale );
Параметры
value
Инициализирует поле значения получающегося
CMTime
.timescale
Инициализирует поле масштаба времени получающегося
CMTime
.Возвращаемое значение
Получающееся
CMTime
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Перераспределяет a
CMTime
структура от aCFDictionary
ранее создаваемыйCMTimeCopyAsDictionary
.Объявление
Swift
func CMTimeMakeFromDictionary(_
dict
: CFDictionary!) -> CMTimeObjective C
CMTime CMTimeMakeFromDictionary ( CFDictionaryRef dict );
Параметры
dict
CFDictionary
из которого можно создатьCMTime
.Возвращаемое значение
Создаваемый
CMTime
.Обсуждение
Для ключей в словаре посмотрите Ключи Словаря.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Делает допустимое
CMTime
со значением, масштабом и эпоха.Объявление
Swift
func CMTimeMakeWithEpoch(_
value
: Int64, _timescale
: Int32, _epoch
: Int64) -> CMTimeObjective C
CMTime CMTimeMakeWithEpoch ( int64_t value, int32_t timescale, int64_t epoch );
Параметры
value
Инициализирует поле значения получающегося
CMTime
.timescale
Инициализирует поле масштаба получающегося
CMTime
.epoch
Инициализирует поле эпохи получающегося
CMTime
.Возвращаемое значение
Получающееся
CMTime
.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Делает a
CMTime
от числа Float64 секунд и предпочтительного масштаба времени.Объявление
Swift
func CMTimeMakeWithSeconds(_
seconds
: Float64, _preferredTimeScale
: Int32) -> CMTimeПараметры
seconds
Инициализирует
seconds
поле получающегосяCMTime
.preferredTimeScale
Инициализирует
preferredTimeScale
поле получающегосяCMTime
.Возвращаемое значение
Получающееся
CMTime
.Обсуждение
Эпоха результата будет нулем. Если
preferredTimeScale
<= 0, результатом будет недопустимоеCMTime
. Если предпочтительный масштаб времени вызовет переполнение, масштаб времени будет неоднократно делиться на два, пока переполнение не уходит, или масштаб времени равняется 1. Если это все еще переполнится в той точке, то результат будет +/-бесконечность.kCMTimeFlags_HasBeenRounded
если результат, когда преобразовано назад к секундам, не будет точно равен исходному значению секунд, флаг будет установлен.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает абсолютное значение a
CMTime
.Объявление
Параметры
time
A
CMTime
.Возвращаемое значение
То же как время параметра, со знаком, инвертированным, если отрицательный.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает сумму два
CMTimes
.Объявление
Параметры
addend1
CMTime
быть добавленным.addend2
Другой
CMTime
быть добавленным.Возвращаемое значение
Сумма двух CMTimes (addend1 + addend2).
Обсуждение
Если операнды оба будут иметь тот же масштаб времени, то масштаб времени результата совпадет с масштабом времени операндов. Если операнды будут иметь различные масштабы времени, то масштаб времени результата будет наименьшим общим кратным масштабов времени операндов. Если, что масштаб времени LCM больше, чем
kCMTimeMaxTimescale
, масштаб времени результата будетkCMTimeMaxTimescale
, и значение по умолчанию, округляющееся, будет применено при преобразовании результата в этот масштаб времени. Если значение результата переполнится, то масштаб времени результата будет неоднократно делиться на два, пока значение результата больше не переполняется. Снова, значение по умолчанию, округляющееся, будет применено при преобразовании результата в этот масштаб времени. Если значение результата все еще переполнится, когда масштаб времени == 1, то результатом будет или положительная или отрицательная бесконечность, в зависимости от направления переполнения.Если какое-либо округление происходит по какой-либо причине, результат
kCMTimeFlags_HasBeenRounded
флаг будет установлен. Если любой из операндов будет иметь, этот флаг будет также установленkCMTimeFlags_HasBeenRounded
набор. Если любой из операндов будет недопустим, то результат будет недопустим. Если операнды будут допустимы, но всего один операнд бесконечен, то результат будет столь же бесконечен. Если операнды будут допустимы, и оба бесконечны, то результаты будут следующие:+infinity + +infinity == +infinity
- бесконечность + - бесконечность == - бесконечность
+infinity + - бесконечность == недопустимый
- бесконечность + +infinity == недопустимый
Если операнды будут допустимы, весьма конечны, и или или оба неопределенны, то результат будет неопределенен. Если эти два операнда будут числовыми (т.е. допустимыми, весьма конечными, весьма определенными), но имейте различные ненулевые эпохи, то результат будет недопустим. Если у них будет та же ненулевая эпоха, то результат будет иметь нуль эпохи (продолжительность). Времена в различные эпохи не могут быть добавлены или вычтены, потому что продолжительность эпохи неизвестна. Времена в нуле эпохи считаются продолжительностями и могут быть добавлены ко временам в другие эпохи. Времена в различные эпохи могут быть сравнены, однако, потому что численно большие эпохи всегда происходят после численно меньших эпох.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает числовое отношение два
CMTimes
.Объявление
Параметры
time1
Сначала
CMTime
в сравнении.time2
Второй
CMTime
в сравнении.Возвращаемое значение
Числовое отношение двух CMTimes.
- 1 возвращается если
time1
меньше, чемtime2
.1 возвращается если
time1
больше, чемtime2
.0 возвращается если
time1
иtime2
равны.
Обсуждение
При сравнении
CMTimes
, рекомендуется использоватьCMTIME_COMPARE_INLINE
макрос, так как это делает выражения сравнения намного больше читаемыми путем помещения работы сравнения между операндами.Если два
CMTimes
являются числовыми (т.е. весьма допустимыми, бесконечными, или неопределенными), и имейте различные эпохи, считается, что времена в численно большие эпохи всегда больше, чем времена в численно меньшие эпохи. Так как эта подпрограмма привыкнет к спискам вида ко времени, она должна дать все значения (даже недопустимые и неопределенные) строгое упорядочивание, чтобы гарантировать этому алгоритмы сортировки, оконечные безопасно. Выбранный порядок несколько произволен: - бесконечность <все конечные значения <неопределенный <+infinity <недопустимыйНедопустимый
CMTimes
считаются равными другому недопустимомуCMTimes
, и больше, чем кто-либо другойCMTime
. Положительная бесконечность считается меньше, чем кто-либо недопустимыйCMTime
, равняйтесь себе, и больше, чем кто-либо другойCMTime
. НеопределенноеCMTime
считается меньше, чем кто-либо недопустимыйCMTime
, меньше, чем положительная бесконечность, равняйтесь себе, и больше, чем кто-либо другойCMTime
. Отрицательная бесконечность считается равной себе и меньше, чем кто-либо другойCMTime
.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает новое
CMTime
содержа источникCMTime
преобразованный в новый масштаб времени (округление в соответствии с требованиями).Объявление
Swift
func CMTimeConvertScale(_
time
: CMTime, _newTimescale
: Int32, _method
: CMTimeRoundingMethod) -> CMTimeObjective C
CMTime CMTimeConvertScale ( CMTime time, int32_t newTimescale, CMTimeRoundingMethod method );
Параметры
time
Источник CMTime.
newTimescale
Масштаб времени тот, к который источник
CMTime
преобразовывается.method
Вызванный метод округления.
Возвращаемое значение
Преобразованное
CMTime
.Обсуждение
Если значение должно быть округлено,
kCMTimeFlags_HasBeenRounded
флаг будет установлен. См. определениеCMTimeRoundingMethod
для обсуждения различных доступных методов округления. Если исходное время будет нечисловым (т.е. бесконечным, неопределенным, недопустимым), то результат будет столь же нечисловым.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Возвраты a
CFDictionary
версия aCMTime
.Объявление
Swift
func CMTimeCopyAsDictionary(_
time
: CMTime, _allocator
: CFAllocator!) -> CFDictionary!Objective C
CFDictionaryRef CMTimeCopyAsDictionary ( CMTime time, CFAllocatorRef allocator );
Параметры
time
CMTime
из которого можно создать словарь.allocator
CFAllocator
с которым можно создать словарь. ПередачаkCFAllocatorDefault
использовать средство выделения по умолчанию.Возвращаемое значение
A
CFDictionary
версияCMTime
.Обсуждение
Это полезно при помещении
CMTimes
в Базовых типах контейнера Основы. Для ключей в получающемся словаре посмотрите Ключи Словаря.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Создает a
CFString
с описанием aCMTime
(ПодобныйCFCopyDescription
).Объявление
Swift
func CMTimeCopyDescription(_
allocator
: CFAllocator!, _time
: CMTime) -> CFString!Objective C
CFStringRef CMTimeCopyDescription ( CFAllocatorRef allocator, CMTime time );
Параметры
allocator
CFAllocator
с которым можно создать описание. ПередачаkCFAllocatorDefault
использовать средство выделения по умолчанию.time
CMTime
быть описанным.Возвращаемое значение
Создаваемый
CFString
описание.Обсуждение
Это используется из
CFShow
на содержащем объектеCMTime
поля. Это также полезно от другого клиента, отлаживающего код. Вызывающей стороне принадлежит возвращенныйCFString
, и ответственно за выпуск его.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Преобразовывает a
CMTime
к секундам.Объявление
Swift
func CMTimeGetSeconds(_
time
: CMTime) -> Float64Параметры
time
CMTime
быть преобразованным.Возвращаемое значение
Получающееся число Float64 секунд.
Обсуждение
Если
CMTime
недопустимо или неопределенен, NaN возвращается. ЕслиCMTime
бесконечно, +/-бесконечность возвращается. ЕслиCMTime
является числовым, эпоха проигнорирована, и time.value / time.timescale возвращается. Подразделение сделано в Float64, таким образом, часть не потеряна в возвращенном результате.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает большие из два
CMTimes
(как определеноCMTimeCompare
).Объявление
Параметры
time1
A
CMTime
.time2
Другой
CMTime
.Возвращаемое значение
Большие из двух
CMTimes
.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает меньшие из двух CMTimes (как определено
CMTimeCompare
).Объявление
Параметры
time1
A
CMTime
.time2
Другой
CMTime
.Возвращаемое значение
Меньшие из двух
CMTimes
.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает продукт CMTime и 32-разрядного целого числа.
Объявление
Параметры
time
CMTime
это будет умножено.multiplier
32-разрядное целое число.
CMTime time
иmultiplier
будет умножен.Возвращаемое значение
Продукт
CMTime
и 32-разрядное целое число.Обсуждение
Результат будет иметь тот же масштаб времени как
CMTime
операнд. Если значение результата переполнится, то масштаб времени результата будет неоднократно делиться на два, пока значение результата больше не переполняется. Снова, значение по умолчанию, округляющееся, будет применено при преобразовании результата в этот масштаб времени. Если значение результата все еще переполнится, когда масштаб времени == 1, то результатом будет или положительная или отрицательная бесконечность, в зависимости от направления переполнения. Если какое-либо округление происходит по какой-либо причине, результатkCMTimeFlags_HasBeenRounded
флаг будет установлен. Этот флаг будет также установлен еслиCMTime
операнд имеетkCMTimeFlags_HasBeenRounded
набор. ЕслиCMTime
операнд недопустим, результат будет недопустим. ЕслиCMTime
операнд допустим, но бесконечен, результат будет бесконечен, и надлежащего знака, даст знаки обоих операндов. ЕслиCMTime
операнд допустим, но неопределенен, результат будет неопределенен.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает продукт a
CMTime
и 64-разрядное плавание.Объявление
Параметры
time
CMTime
это будет умножено.multiplier
64-разрядное плавание.
CMTime time
иmultiplier
будет умножен.Возвращаемое значение
Продукт
CMTime
и 64-разрядное плавание.Обсуждение
Результат будет первоначально иметь тот же масштаб времени как операнд CMTime. Если масштаб времени результата будет меньше чем 65 536, то он будет неоднократно удваиваться, пока это не будут по крайней мере 65 536. Если значение результата переполнится, то масштаб времени результата будет неоднократно делиться на два, пока значение результата больше не переполняется. Снова, значение по умолчанию, округляющееся, будет применено при преобразовании результата в этот масштаб времени. Если значение результата все еще переполнится, когда масштаб времени == 1, то результатом будет или положительная или отрицательная бесконечность, в зависимости от направления переполнения. Если какое-либо округление происходит по какой-либо причине, результат
kCMTimeFlags_HasBeenRounded
флаг будет установлен. Этот флаг будет также установлен еслиCMTime
операнд имеетkCMTimeFlags_HasBeenRounded
набор. ЕслиCMTime
операнд недопустим, результат будет недопустим. ЕслиCMTime
операнд допустим, но бесконечен, результат будет бесконечен, и надлежащего знака учитывая знаки обоих операндов. ЕслиCMTime
операнд допустим, но неопределенен, результат будет неопределенен.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Распечатывает описание
CMTime
(ПодобныйCFShow
).Параметры
time
CMTime
показать.Обсуждение
Это является самым полезным из gdb.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает различие два
CMTimes
.Объявление
Параметры
minuend
CMTime
из которого будет вычтено вычитаемое.subtrahend
CMTime
это будет вычтено из уменьшаемого.Возвращаемое значение
Различие двух CMTimes (уменьшаемое - вычитаемое).
Обсуждение
Если операнды оба будут иметь тот же масштаб времени, то масштаб времени результата совпадет с масштабом времени операндов. Если операнды будут иметь различные масштабы времени, то масштаб времени результата будет наименьшим общим кратным масштабов времени операндов. Если, что масштаб времени LCM больше, чем
kCMTimeMaxTimescale
, масштаб времени результата будетkCMTimeMaxTimescale
, и значение по умолчанию, округляющееся, будет применено при преобразовании результата в этот масштаб времени.Если значение результата переполнится, то масштаб времени результата будет неоднократно делиться на два, пока значение результата больше не переполняется. Снова, значение по умолчанию, округляющееся, будет применено при преобразовании результата в этот масштаб времени. Если значение результата все еще переполнится, когда масштаб времени == 1, то результатом будет или положительная или отрицательная бесконечность, в зависимости от направления переполнения.
Если какое-либо округление происходит по какой-либо причине, результат
kCMTimeFlags_HasBeenRounded
флаг будет установлен. Если любой из операндов будет иметь, этот флаг будет также установленkCMTimeFlags_HasBeenRounded
набор. Если любой из операндов будет недопустим, то результат будет недопустим. Если операнды будут допустимы, но всего один операнд бесконечен, то результат будет столь же бесконечен. Если операнды будут допустимы, и оба бесконечны, то результаты будут следующие:+infinity - +infinity == недопустимый
- бесконечность - бесконечность == недопустимый
+infinity - бесконечность == +infinity
- бесконечность - +infinity == - бесконечность
Если операнды будут допустимы, весьма конечны, и или или оба неопределенны, то результат будет неопределенен. Если эти два операнда будут числовыми (т.е. допустимыми, весьма конечными, весьма определенными), но имейте различные ненулевые эпохи, то результат будет недопустим. Если у них будет та же ненулевая эпоха, то результат будет иметь нуль эпохи (продолжительность). Времена в различные эпохи не могут быть добавлены или вычтены, потому что продолжительность эпохи неизвестна. Времена в нуле эпохи считаются продолжительностями и могут быть вычтены со времен в другие эпохи. Времена в различные эпохи могут быть сравнены, однако, потому что численно большие эпохи всегда происходят после численно меньших эпох.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает булево значение, указывающее, является ли указанное сравнение двух CMTimes истиной.
Объявление
Objective C
#define CMTIME_COMPARE_INLINE(time1, comparator, time2) ((Boolean)(CMTimeCompare(time1, time2) comparator 0))
Обсуждение
Например:
CMTIME_COMPARE_INLINE(time1, <=, time2)
возвратит true если time1 <= time2.
Оператор импорта
Objective C
@import CoreMedia;
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает булево значение, указывающее, допустимо ли данное время.
Объявление
Objective C
#define CMTIME_IS_VALID(time) ((Boolean)(((time).flags & kCMTimeFlags_Valid) != 0))
Возвращаемое значение
true
еслиCMTime
допустимо, иначеfalse
.Оператор импорта
Objective C
@import CoreMedia;
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает булево значение, указывающее, недопустимо ли данное время.
Объявление
Objective C
#define CMTIME_IS_INVALID(time) (! CMTIME_IS_VALID(time))
Возвращаемое значение
true
еслиCMTime
недопустимо, иначеfalse
.Оператор импорта
Objective C
@import CoreMedia;
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает булево значение, указывающее, является ли данное время положительной бесконечностью.
Объявление
Objective C
#define CMTIME_IS_POSITIVE_INFINITY(time) ((Boolean)(CMTIME_IS_VALID(time) && (((time).flags & kCMTimeFlags_PositiveInfinity) != 0)))
Возвращаемое значение
true
еслиCMTime
положительная бесконечность, иначеfalse
.Обсуждение
Используйте это вместо
(myTime == kCMTimePositiveInfinity)
, с тех пор существует много структур CMTime, представляющих положительную бесконечность. Это вызвано тем, что поля нефлагов проигнорированы, таким образом, они могут содержать что-либо.Оператор импорта
Objective C
@import CoreMedia;
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает булево значение, указывающее, является ли данное время отрицательной бесконечностью.
Объявление
Objective C
#define CMTIME_IS_NEGATIVE_INFINITY(time) ((Boolean)(CMTIME_IS_VALID(time) && (((time).flags & kCMTimeFlags_NegativeInfinity) != 0)))
Возвращаемое значение
true
еслиCMTime
отрицательная бесконечность, иначеfalse
.Обсуждение
Используйте это вместо
(myTime == kCMTimeNegativeInfinity)
, с тех пор существует много структур CMTime, представляющих положительную бесконечность. Это вызвано тем, что поля нефлагов проигнорированы, таким образом, они могут содержать что-либо.Оператор импорта
Objective C
@import CoreMedia;
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает булево значение, указывающее, неопределенно ли данное время.
Объявление
Objective C
#define CMTIME_IS_INDEFINITE(time) ((Boolean)(CMTIME_IS_VALID(time) && (((time).flags & kCMTimeFlags_Indefinite) != 0)))
Возвращаемое значение
true
еслиCMTime
неопределенно, иначеfalse
.Оператор импорта
Objective C
@import CoreMedia;
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает булево значение, указывающее, является ли данное время числовым.
Объявление
Objective C
#define CMTIME_IS_NUMERIC(time) ((Boolean)(((time).flags & (kCMTimeFlags_Valid | kCMTimeFlags_ImpliedValueFlagsMask)) == kCMTimeFlags_Valid))
Возвращаемое значение
true
еслиCMTime
является числовым, иначеfalse
. Возвратыfalse
еслиCMTime
недопустимо, неопределенен, или +/-бесконечность.Обсуждение
Числовое время содержит применимое значение/масштаб времени/эпоху.
Оператор импорта
Objective C
@import CoreMedia;
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает булево значение, указывающее, было ли округлено данное время.
Объявление
Objective C
#define CMTIME_HAS_BEEN_ROUNDED(time) ((Boolean)(CMTIME_IS_NUMERIC(time) && (((time).flags & kCMTimeFlags_HasBeenRounded) != 0)))
Возвращаемое значение
true
еслиCMTime
был округлен, иначеfalse
(время абсолютно точно).Оператор импорта
Objective C
@import CoreMedia;
Доступность
Доступный в OS X v10.7 и позже.
-
Определяет структуру, представляющую рациональную временную стоимость
int64
/int32
.Объявление
Swift
struct CMTime { var value: CMTimeValue var timescale: CMTimeScale var flags: CMTimeFlags var epoch: CMTimeEpoch }
Objective C
typedef struct { CMTimeValue value; CMTimeScale timescale; CMTimeFlags flags; CMTimeEpoch epoch; } CMTime;
Поля
value
Значение CMTime.
value/timescale
= секунды.timescale
Масштаб времени CMTime.
value/timescale
= секунды.flags
Битовое поле, представляющее флаги, установлено для CMTime.
Например,
kCMTimeFlags_Valid
. См. Флаги CMTime для возможных значений.epoch
Эпоха CMTime.
Вы используете эпоху для дифференциации между равными метками времени, фактически отличающимися из-за цикличного выполнения, упорядочивания мультиэлемента, и т.д.
Эпоха используется во время сравнения: большие эпохи происходят после меньших. Дополнение или вычитание только возможны в течение единственной эпохи, однако, так как продолжительность эпохи может быть неизвестной или переменной.
Доступность
Доступный в OS X v10.7 и позже.
-
Числитель рациональных
CMTime
.Объявление
Swift
typealias CMTimeValue = Int64
Objective C
typedef int64_t CMTimeValue;
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Знаменатель рациональных
CMTime
.Объявление
Swift
typealias CMTimeScale = Int32
Objective C
typedef int32_t CMTimeScale;
Обсуждение
Масштабы времени должны быть положительными.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Эпоха та, к который a
CMTime
относится.Объявление
Swift
typealias CMTimeEpoch = Int64
Objective C
typedef int64_t CMTimeEpoch;
Обсуждение
Эпоха обычно
0
, но Вы могли бы использовать различное значение, например, в цикле.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Тип для указания флаговых битов для a
CMTime
.Объявление
Swift
struct CMTimeFlags : RawOptionSetType { init(_
rawValue
: UInt32) init(rawValuerawValue
: UInt32) static var Valid: CMTimeFlags { get } static var HasBeenRounded: CMTimeFlags { get } static var PositiveInfinity: CMTimeFlags { get } static var NegativeInfinity: CMTimeFlags { get } static var Indefinite: CMTimeFlags { get } static var ImpliedValueFlagsMask: CMTimeFlags { get } }Objective C
typedef uint32_t CMTimeFlags;
Обсуждение
Для возможных значений см. Флаги CMTime.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Введите для констант, используемых для указания метода округления для использования при вычислениях
time.value
во время преобразований масштаба времени.Объявление
Swift
enum CMTimeRoundingMethod : UInt32 { case RoundHalfAwayFromZero case RoundTowardZero case RoundAwayFromZero case QuickTime case RoundTowardPositiveInfinity case RoundTowardNegativeInfinity }
Objective C
typedef uint32_t CMTimeRoundingMethod;
Обсуждение
Для возможных значений посмотрите Округление Методов.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Константы для инициализации
CMTime
структуры.Объявление
Swift
let kCMTimeInvalid: CMTime let kCMTimeIndefinite: CMTime let kCMTimePositiveInfinity: CMTime let kCMTimeNegativeInfinity: CMTime let kCMTimeZero: CMTime
Objective C
const CMTime kCMTimeInvalid; const CMTime kCMTimeIndefinite; const CMTime kCMTimePositiveInfinity; const CMTime kCMTimeNegativeInfinity; const CMTime kCMTimeZero;
Константы
-
kCMTimeInvalid
kCMTimeInvalid
Используйте эту константу для инициализации недопустимого
CMTime
.Все поля 0, таким образом, Вы можете
calloc
или заливка с0
сделать многие из них. Не тестируйте против этого использования(time == kCMTimeInvalid)
, существуют многиеCMTimes
кроме этого, которые также недопустимы. ИспользоватьCMTIME_IS_INVALID(time)
вместо этого.Доступный в OS X v10.7 и позже.
-
kCMTimeIndefinite
kCMTimeIndefinite
Используйте эту константу для инициализации неопределенного
CMTime
(например, продолжительность прямого репортажа).Не тестируйте против этого использования
(time == kCMTimeIndefinite)
, существует много CMTimes кроме этого, которые также неопределенны. ИспользоватьCMTIME_IS_INDEFINITE(time)
вместо этого.Доступный в OS X v10.7 и позже.
-
kCMTimePositiveInfinity
kCMTimePositiveInfinity
Используйте эту константу для инициализации a
CMTime
к +infinity.Не тестируйте против этого использования
(time == kCMTimePositiveInfinity)
, существует много CMTimes кроме этого, которые являются также +infinity. ИспользоватьCMTIME_IS_POSITIVE_INFINITY(time)
вместо этого.Доступный в OS X v10.7 и позже.
-
kCMTimeNegativeInfinity
kCMTimeNegativeInfinity
Используйте эту константу для инициализации a
CMTime
к - бесконечность.Не тестируйте против этого использования
(time == kCMTimeNegativeInfinity)
, существует много CMTimes кроме этого, которые являются также - бесконечность. ИспользоватьCMTIME_IS_NEGATIVE_INFINITY(time)
вместо этого.Доступный в OS X v10.7 и позже.
-
kCMTimeZero
kCMTimeZero
Используйте эту константу для инициализации a
CMTime
к 0.Не тестируйте против этого использования
(time == kCMTimeZero)
, существует много CMTimes кроме этого, которые являются также 0. ИспользоватьCMTimeCompare(time, kCMTimeZero)
вместо этого.Доступный в OS X v10.7 и позже.
-
-
Константы для указания флагов для
CMTime
.Объявление
Swift
struct CMTimeFlags : RawOptionSetType { init(_
rawValue
: UInt32) init(rawValuerawValue
: UInt32) static var Valid: CMTimeFlags { get } static var HasBeenRounded: CMTimeFlags { get } static var PositiveInfinity: CMTimeFlags { get } static var NegativeInfinity: CMTimeFlags { get } static var Indefinite: CMTimeFlags { get } static var ImpliedValueFlagsMask: CMTimeFlags { get } }Objective C
enum { kCMTimeFlags_Valid = 1UL<<0, kCMTimeFlags_HasBeenRounded = 1UL<<1, kCMTimeFlags_PositiveInfinity = 1UL<<2, kCMTimeFlags_NegativeInfinity = 1UL<<3, kCMTimeFlags_Indefinite = 1UL<<4, kCMTimeFlags_ImpliedValueFlagsMask = kCMTimeFlags_PositiveInfinity | kCMTimeFlags_NegativeInfinity | kCMTimeFlags_Indefinite };
Константы
-
Valid
kCMTimeFlags_Valid
Указывает, что время допустимо.
Доступный в OS X v10.7 и позже.
-
HasBeenRounded
kCMTimeFlags_HasBeenRounded
Указывает, что было округлено время.
Доступный в OS X v10.7 и позже.
-
PositiveInfinity
kCMTimeFlags_PositiveInfinity
Указывает, что время является +infinity.
Доступный в OS X v10.7 и позже.
-
NegativeInfinity
kCMTimeFlags_NegativeInfinity
Указывает, что время - бесконечность.
Доступный в OS X v10.7 и позже.
-
Indefinite
kCMTimeFlags_Indefinite
Указывает, что время неопределенно.
Доступный в OS X v10.7 и позже.
-
ImpliedValueFlagsMask
kCMTimeFlags_ImpliedValueFlagsMask
Указывает, что время является +infinity, - бесконечность, или неопределенный.
Доступный в OS X v10.7 и позже.
-
-
Константа для определения максимального масштаба времени.
Объявление
Swift
var kCMTimeMaxTimescale: Int { get }
Objective C
#define kCMTimeMaxTimescale 0x7fffffffL
Константы
-
Константы раньше указывали метод округления для использования при вычислениях
time.value
во время преобразований масштаба времени.Объявление
Swift
enum CMTimeRoundingMethod : UInt32 { case RoundHalfAwayFromZero case RoundTowardZero case RoundAwayFromZero case QuickTime case RoundTowardPositiveInfinity case RoundTowardNegativeInfinity }
Objective C
enum { kCMTimeRoundingMethod_RoundHalfAwayFromZero = 1, kCMTimeRoundingMethod_RoundTowardZero = 2, kCMTimeRoundingMethod_RoundAwayFromZero = 3, kCMTimeRoundingMethod_QuickTime = 4, kCMTimeRoundingMethod_RoundTowardPositiveInfinity = 5, kCMTimeRoundingMethod_RoundTowardNegativeInfinity = 6, kCMTimeRoundingMethod_Default = kCMTimeRoundingMethod_RoundHalfAwayFromZero };
Константы
-
RoundHalfAwayFromZero
kCMTimeRoundingMethod_RoundHalfAwayFromZero
Если abs (часть)> = 0.5, вокруг по направлению к нулю, если abs (часть) <0.5, далеко от 0.
Доступный в OS X v10.7 и позже.
-
RoundTowardZero
kCMTimeRoundingMethod_RoundTowardZero
Вокруг по направлению к нулю, если часть! = 0.
Доступный в OS X v10.7 и позже.
-
RoundAwayFromZero
kCMTimeRoundingMethod_RoundAwayFromZero
Вокруг далеко от нуля, если abs (часть)> 0.
Доступный в OS X v10.7 и позже.
-
QuickTime
kCMTimeRoundingMethod_QuickTime
Использовать
kCMTimeRoundingMethod_RoundTowardZero
при преобразовании от большего до меньшего масштаба (т.е. от большей точности до меньшей точности), но использованиеkCMTimeRoundingMethod_RoundAwayFromZero
при преобразовании от меньшего до более широкого масштаба (т.е. от меньшей точности до большей точности).Кроме того, никогда не округляйте в меньшую сторону отрицательное число до 0; всегда возвращайте наименьшую отрицательную величину
CMTime
в этом случае (-1/newTimescale).Доступный в OS X v10.7 и позже.
-
RoundTowardPositiveInfinity
kCMTimeRoundingMethod_RoundTowardPositiveInfinity
Вокруг к +infinity, если часть! = 0.
Доступный в OS X v10.7 и позже.
-
RoundTowardNegativeInfinity
kCMTimeRoundingMethod_RoundTowardNegativeInfinity
Вокруг к - бесконечность, если часть! = 0.
Доступный в OS X v10.7 и позже.
-
kCMTimeRoundingMethod_Default
kCMTimeRoundingMethod_Default
Синоним для
kCMTimeRoundingMethod_RoundHalfAwayFromZero
.Доступный в OS X v10.7 и позже.
-
-
Ключи для доступа к значениям CMTime, представленного CFDictionary.
Объявление
Swift
let kCMTimeValueKey: CFString! let kCMTimeScaleKey: CFString! let kCMTimeEpochKey: CFString! let kCMTimeFlagsKey: CFString!
Objective C
const CFStringRef kCMTimeValueKey; const CFStringRef kCMTimeScaleKey; const CFStringRef kCMTimeEpochKey; const CFStringRef kCMTimeFlagsKey;
Константы
-
kCMTimeValueKey
kCMTimeValueKey
CFDictionary
ключ для поля значенияCMTime
(aCFNumber
содержа значение int64_t).Доступный в OS X v10.7 и позже.
-
kCMTimeScaleKey
kCMTimeScaleKey
CFDictionary
ключ для поля масштаба времениCMTime
(aCFNumber
содержа значение int32_t).Доступный в OS X v10.7 и позже.
-
kCMTimeEpochKey
kCMTimeEpochKey
CFDictionary
ключ для поля эпохиCMTime
(aCFNumber
содержа значение int64_t).Доступный в OS X v10.7 и позже.
-
kCMTimeFlagsKey
kCMTimeFlagsKey
CFDictionary
ключ для поля флаговCMTime
(aCFNumber
содержа значение int32_t).Доступный в OS X v10.7 и позже.
Обсуждение
См. также
CMTimeCopyAsDictionary
иCMTimeMakeFromDictionary
. -