Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы CoreMedia ссылка CMTime

Опции
Развертывание Target:

На этой странице
Язык:

Ссылка 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) -> CMTime

    Objective 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 структура от a CFDictionary ранее создаваемый CMTimeCopyAsDictionary.

    Объявление

    Swift

    func CMTimeMakeFromDictionary(_ dict: CFDictionary!) -> CMTime

    Objective 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) -> CMTime

    Objective 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

    Objective C

    CMTime CMTimeMakeWithSeconds ( Float64 seconds, int32_t preferredTimeScale );

    Параметры

    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.

    Объявление

    Swift

    func CMTimeAbsoluteValue(_ time: CMTime) -> CMTime

    Objective C

    CMTime CMTimeAbsoluteValue ( CMTime time );

    Параметры

    time

    A CMTime.

    Возвращаемое значение

    То же как время параметра, со знаком, инвертированным, если отрицательный.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

  • Возвращает сумму два CMTimes.

    Объявление

    Swift

    func CMTimeAdd(_ addend1: CMTime, _ addend2: CMTime) -> CMTime

    Objective C

    CMTime CMTimeAdd ( CMTime addend1, CMTime addend2 );

    Параметры

    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.

    Объявление

    Swift

    func CMTimeCompare(_ time1: CMTime, _ time2: CMTime) -> Int32

    Objective C

    int32_t CMTimeCompare ( CMTime time1, CMTime time2 );

    Параметры

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

    Objective 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 версия a CMTime.

    Объявление

    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 с описанием a CMTime (Подобный 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

    Objective C

    Float64 CMTimeGetSeconds ( CMTime time );

    Параметры

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

    Объявление

    Swift

    func CMTimeMaximum(_ time1: CMTime, _ time2: CMTime) -> CMTime

    Objective C

    CMTime CMTimeMaximum ( CMTime time1, CMTime time2 );

    Параметры

    time1

    A CMTime.

    time2

    Другой CMTime.

    Возвращаемое значение

    Большие из двух CMTimes.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

  • Возвращает меньшие из двух CMTimes (как определено CMTimeCompare).

    Объявление

    Swift

    func CMTimeMinimum(_ time1: CMTime, _ time2: CMTime) -> CMTime

    Objective C

    CMTime CMTimeMinimum ( CMTime time1, CMTime time2 );

    Параметры

    time1

    A CMTime.

    time2

    Другой CMTime.

    Возвращаемое значение

    Меньшие из двух CMTimes.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

  • Возвращает продукт CMTime и 32-разрядного целого числа.

    Объявление

    Swift

    func CMTimeMultiply(_ time: CMTime, _ multiplier: Int32) -> CMTime

    Objective C

    CMTime CMTimeMultiply ( CMTime time, int32_t multiplier );

    Параметры

    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-разрядное плавание.

    Объявление

    Swift

    func CMTimeMultiplyByFloat64(_ time: CMTime, _ multiplier: Float64) -> CMTime

    Objective C

    CMTime CMTimeMultiplyByFloat64 ( CMTime time, Float64 multiplier );

    Параметры

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

    Объявление

    Swift

    func CMTimeShow(_ time: CMTime)

    Objective C

    void CMTimeShow ( CMTime time );

    Параметры

    time

    CMTime показать.

    Обсуждение

    Это является самым полезным из gdb.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

  • Возвращает различие два CMTimes.

    Объявление

    Swift

    func CMTimeSubtract(_ minuend: CMTime, _ subtrahend: CMTime) -> CMTime

    Objective C

    CMTime CMTimeSubtract ( CMTime minuend, CMTime subtrahend );

    Параметры

    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(rawValue rawValue: 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(rawValue rawValue: 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

    Константы

    • kCMTimeMaxTimescale

      kCMTimeMaxTimescale

      Максимальный масштаб времени.

      Доступный в OS X v10.7 и позже.

  • Константы раньше указывали метод округления для использования при вычислениях 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 (a CFNumber содержа значение int64_t).

      Доступный в OS X v10.7 и позже.

    • kCMTimeScaleKey

      kCMTimeScaleKey

      CFDictionary ключ для поля масштаба времени CMTime (a CFNumber содержа значение int32_t).

      Доступный в OS X v10.7 и позже.

    • kCMTimeEpochKey

      kCMTimeEpochKey

      CFDictionary ключ для поля эпохи CMTime (a CFNumber содержа значение int64_t).

      Доступный в OS X v10.7 и позже.

    • kCMTimeFlagsKey

      kCMTimeFlagsKey

      CFDictionary ключ для поля флагов CMTime (a CFNumber содержа значение int32_t).

      Доступный в OS X v10.7 и позже.

    Обсуждение

    См. также CMTimeCopyAsDictionary и CMTimeMakeFromDictionary.