Ссылка CMTimeRange
Этот документ описывает API для создания и управления CMTimeRange
структуры.
CMTimeRange
структуры являются ненепрозрачными непостоянными структурами, представляющими диапазоны времени. A CMTimeRange
представлен как два CMTime
структуры, та, указывающая время начала диапазона и другого, который указывает продолжительность диапазона. Диапазон времени не включает время окончания, которое было бы вычислено путем добавления продолжительности ко времени начала. Следующее выражение будет всегда оценивать ко лжи:
CMTimeRangeContainsTime(range, CMTimeRangeGetEnd(range))
Можно преобразовать CMTimeRanges
к и от CFDictionaries
(см. CFDictionaryRef
) использование CMTimeRangeCopyAsDictionary
и CMTimeRangeMakeFromDictionary
, для использования в аннотациях и различных Базовых контейнерах Основы.
Эпоха в a CMTime
это представляет продолжительность, должен всегда быть 0, и значение должно быть неотрицательным. Эпоха в a CMTime
это представляет метку времени, может быть ненулевым, но операции диапазона (такой как CMTimeRangeGetUnion
) может только быть выполнен на диапазонах, чьи запускаются, поля имеют ту же эпоху. CMTimeRanges
не может охватить различные эпохи.
Дополнительные функции для управления датами и временем описаны в Ссылке Утилит времени; см. также Ссылку Констант Основы AV.
-
Для данного
CMTime
иCMTimeRange
, возвращает самое близкоеCMTime
в том диапазоне времени.Объявление
Swift
func CMTimeClampToRange(_
time
: CMTime, _range
: CMTimeRange) -> CMTimeObjective C
CMTime CMTimeClampToRange ( CMTime time, CMTimeRange range );
Параметры
time
Время, которое будет зафиксировано.
range
Опрашиваемый диапазон времени.
Возвращаемое значение
A
CMTime
структура в данном диапазоне времени.Обсуждение
Времена в данном диапазоне времени будут возвращены неизмененные. Времена перед запуском и после времени окончания диапазона времени возвратят запуск и время окончания диапазона соответственно. Если
CMTimeRange
параметр пуст, недопустимоеCMTime
будет возвращен. Если данныйCMTime
недопустимо, возвращенныйCMTime
будет недопустимо.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Переводит продолжительность посредством отображения от
CMTimeRange
кCMTimeRange
.Объявление
Swift
func CMTimeMapDurationFromRangeToRange(_
dur
: CMTime, _fromRange
: CMTimeRange, _toRange
: CMTimeRange) -> CMTimeObjective C
CMTime CMTimeMapDurationFromRangeToRange ( CMTime dur, CMTimeRange fromRange, CMTimeRange toRange );
Параметры
dur
Продолжительность, которая будет переведена.
fromRange
Диапазон времени, из которого переводится продолжительность.
toRange
Диапазон времени, к которому продолжительность отображается на.
Возвращаемое значение
A
CMTime
структура, представляющая переведенную продолжительность.Обсуждение
Продолжительность будет масштабироваться в пропорции к отношению между продолжительностями диапазонов:
result = dur*(toRange.duration/fromRange.duration)
Если
dur
не имеет нуля эпохи, недопустимогоCMTime
будет возвращен.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Переводит время посредством отображения от
CMTimeRange
кCMTimeRange
.Объявление
Swift
func CMTimeMapTimeFromRangeToRange(_
t
: CMTime, _fromRange
: CMTimeRange, _toRange
: CMTimeRange) -> CMTimeObjective C
CMTime CMTimeMapTimeFromRangeToRange ( CMTime t, CMTimeRange fromRange, CMTimeRange toRange );
Параметры
t
CMTime
быть переведенным.fromRange
Диапазон тот времени, от который
CMTime
переводится.toRange
Диапазон тот времени, к который
CMTime
отображается на.Возвращаемое значение
A
CMTime
структура, представляющая переведенное время.Обсуждение
Запуск и время окончания
fromRange
будет отображен на запуске и время окончанияtoRange
соответственно. Другие времена будут отображены линейно, с помощью формулы:result = (t-fromRange.start)*(toRange.duration/fromRange.duration)+toRange.start
Если также
CMTimeRange
параметр пуст, недопустимоеCMTime
будет возвращен. Еслиt
не имеет той же эпохи как fromRange.start, недопустимоеCMTime
будет возвращен. Если и fromRange и toRange имеют продолжительностьkCMTimePositiveInfinity
,t
будет смещаться относительно различий между их запусками, но не масштабироваться.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Указывает, содержится ли время в диапазоне времени.
Объявление
Swift
func CMTimeRangeContainsTime(_
range
: CMTimeRange, _time
: CMTime) -> BooleanObjective C
Boolean CMTimeRangeContainsTime ( CMTimeRange range, CMTime time );
Параметры
range
CMTimeRange
быть опрошенным.time
CMTime
быть протестированным на включение.Возвращаемое значение
Возвращает true, если требуемое время содержится в диапазоне требуемого времени, ложь, если это не.
Обсуждение
Эта функция возвращает булево значение, указывающее ли время, указанное
time
параметр содержится в диапазоне, указанномrange
параметр.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает булевскую переменную, указывающую, содержится ли данный диапазон времени в другом диапазоне времени.
Объявление
Swift
func CMTimeRangeContainsTimeRange(_
range1
: CMTimeRange, _range2
: CMTimeRange) -> BooleanObjective C
Boolean CMTimeRangeContainsTimeRange ( CMTimeRange range1, CMTimeRange range2 );
Параметры
range1
CMTimeRange
быть опрошенным.range2
CMTimeRange
быть протестированным на включение.Возвращаемое значение
Возвращает true, если диапазон второго раза содержится в течение первого раза диапазон, ложь, если это не.
Обсуждение
Эта функция возвращает булево значение, указывающее ли диапазон времени, указанный
range1
параметр содержит диапазон, указанныйrange2
параметр.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Возвраты a
CFDictionary
версия aCMTimeRange
.Объявление
Swift
func CMTimeRangeCopyAsDictionary(_
range
: CMTimeRange, _allocator
: CFAllocator!) -> CFDictionary!Objective C
CFDictionaryRef CMTimeRangeCopyAsDictionary ( CMTimeRange range, CFAllocatorRef allocator );
Параметры
range
CMTimeRange
из которого можно создать словарь.allocator
CFAllocator
с которым можно создать словарь. ПередачаkCFAllocatorDefault
использовать средство выделения по умолчаниюВозвращаемое значение
A
CFDictionary
версияCMTimeRange
.Обсуждение
Это полезно при помещении
CMTimeRanges
в Базовых типах контейнера Основы. Для ключей см. Ключи CFDictionary.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Создает a
CFString
с описанием aCMTimeRange
(подобныйCFCopyDescription
).Объявление
Swift
func CMTimeRangeCopyDescription(_
allocator
: CFAllocator!, _range
: CMTimeRange) -> CFString!Objective C
CFStringRef CMTimeRangeCopyDescription ( CFAllocatorRef allocator, CMTimeRange range );
Параметры
allocator
CFAllocator
для выделения памяти для описания. ПередачаkCFAllocatorDefault
использовать средство выделения по умолчанию.range
CMTimeRange
описать.Возвращаемое значение
Создаваемый
CFString
описание.Обсуждение
Это используется из
CFShow
на содержащем объектеCMTimeRange
поля. Это также полезно от другого клиента, отлаживающего код. Вызывающей стороне принадлежит возвращенныйCFString
и ответственно за выпуск его.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает булево значение, указывающее ли два
CMTimeRanges
идентичны.Объявление
Swift
func CMTimeRangeEqual(_
range1
: CMTimeRange, _range2
: CMTimeRange) -> BooleanObjective C
Boolean CMTimeRangeEqual ( CMTimeRange range1, CMTimeRange range2 );
Параметры
range1
CMTimeRange
быть сравненным для равенства.range2
Другой
CMTimeRange
быть сравненным для равенства.Возвращаемое значение
Возвращает true, если два раза располагаются, являются идентичными, ложными, если они отличаются.
Обсуждение
Эта функция возвращает булево значение, указывающее ли диапазоны времени, указанные
range1
иrange2
параметры идентичны.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Создает допустимое
CMTimeRange
от данного запуска и время окончания.Объявление
Swift
func CMTimeRangeFromTimeToTime(_
start
: CMTime, _end
: CMTime) -> CMTimeRangeObjective C
CMTimeRange CMTimeRangeFromTimeToTime ( CMTime start, CMTime end );
Параметры
start
CMTime
структура, представляющая время начала для создания диапазона.end
CMTime
структура, представляющая время окончания для создания диапазона.Возвращаемое значение
Получающееся
CMTimeRange
.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Возвраты a
CMTime
структура, представляющая конец диапазона времени.Объявление
Swift
func CMTimeRangeGetEnd(_
range
: CMTimeRange) -> CMTimeObjective C
CMTime CMTimeRangeGetEnd ( CMTimeRange range );
Параметры
range
CMTimeRange, от которого можно найти конец диапазона времени.
Возвращаемое значение
A
CMTime
структура, представляющая конец диапазона требуемого времени.Обсуждение
Эта функция возвращает a
CMTime
структура, указывающая конец диапазона времени, указанногоrange
параметр. CMTimeRangeContainsTime (диапазон, CMTimeRangeGetEnd (диапазон)) всегда является ложью.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает пересечение два
CMTimeRanges
.Объявление
Swift
func CMTimeRangeGetIntersection(_
range1
: CMTimeRange, _range2
: CMTimeRange) -> CMTimeRangeObjective C
CMTimeRange CMTimeRangeGetIntersection ( CMTimeRange range1, CMTimeRange range2 );
Параметры
range1
CMTimeRange
быть пересеченным.range2
Другой
CMTimeRange
быть пересеченным.Возвращаемое значение
Пересечение двух
CMTimeRanges
.Обсуждение
Эта функция возвращает a
CMTimeRange
структура, представляющая пересечение диапазонов времени, указанныхrange1
иrange2
параметры. Это - самый большой диапазон, который включают оба диапазона.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает объединение два
CMTimeRanges
.Объявление
Swift
func CMTimeRangeGetUnion(_
range1
: CMTimeRange, _range2
: CMTimeRange) -> CMTimeRangeObjective C
CMTimeRange CMTimeRangeGetUnion ( CMTimeRange range1, CMTimeRange range2 );
Параметры
range1
CMTimeRange
быть объединенным.range2
Другой
CMTimeRange
быть объединенным.Возвращаемое значение
Объединение двух
CMTimeRanges
.Обсуждение
Эта функция возвращает a
CMTimeRange
структура, представляющая объединение диапазонов времени, указанныхrange1
иrange2
параметры. Это - самый маленький диапазон, включающий все случаи, которые находятся в любом диапазоне.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Создает допустимое
CMTimeRange
с данным временем начала и продолжительностью.Объявление
Swift
func CMTimeRangeMake(_
start
: CMTime, _duration
: CMTime) -> CMTimeRangeObjective C
CMTimeRange CMTimeRangeMake ( CMTime start, CMTime duration );
Параметры
start
CMTime
структура для инициализации поля запуска получающегосяCMTimeRange
.duration
CMTime
структура для инициализации поля продолжительности получающегосяCMTimeRange
.Возвращаемое значение
Получающееся
CMTimeRange
.Обсуждение
Параметр продолжительности должен иметь эпоху 0; иначе недопустимый диапазон времени будет возвращен.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Перераспределяет a
CMTimeRange
структура от CFDictionary, ранее создаваемогоCMTimeRangeCopyAsDictionary
.Объявление
Swift
func CMTimeRangeMakeFromDictionary(_
dict
: CFDictionary!) -> CMTimeRangeObjective C
CMTimeRange CMTimeRangeMakeFromDictionary ( CFDictionaryRef dict );
Параметры
dict
CFDictionary
из которого можно создать aCMTimeRange
.Возвращаемое значение
Перераспределенный
CMTimeRange
.Обсуждение
Это полезно при получении
CMTimeRanges
от Базовых типов контейнера Основы. ЕслиCFDictionary
не имеет включенных значений потребности, недопустимый диапазон времени возвращается. Для ключей см. Ключи CFDictionary.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Распечатывает описание
CMTimeRange
кstderr
(подобныйCFShow
).Объявление
Swift
func CMTimeRangeShow(_
range
: CMTimeRange)Objective C
void CMTimeRangeShow ( CMTimeRange range );
Параметры
range
CMTimeRange
быть распечатанным.Обсуждение
Это является самым полезным из gdb.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает булево значение, указывающее ли данный
CMTimeRange
имеет продолжительность 0.Объявление
Objective C
#define CMTIMERANGE_IS_EMPTY(range) ((Boolean)(CMTIMERANGE_IS_VALID(range) && (CMTIME_COMPARE_INLINE(range.duration, ==, kCMTimeZero))))
Параметры
range
Диапазон времени, который будет протестирован на пустоту.
Возвращаемое значение
true
еслиrange
имеет продолжительность0
; иначе,false
.Оператор импорта
Objective C
@import CoreMedia;
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает булево значение, указывающее ли данный
CMTimeRange
неопределенно.Объявление
Objective C
#define CMTIMERANGE_IS_INDEFINITE(range) ((Boolean)(CMTIMERANGE_IS_VALID(range) && (CMTIME_IS_INDEFINITE(range.start) || CMTIME_IS_INDEFINITE(range.duration))))
Параметры
range
Диапазон времени, который будет протестирован на ограниченность.
Возвращаемое значение
true
еслиrange
неопределенно; иначе,false
.Обсуждение
Неопределенный диапазон времени имеет или неопределенный запуск или неопределенную продолжительность или обоих.
Оператор импорта
Objective C
@import CoreMedia;
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает булево значение, указывающее ли данный
CMTimeRange
недопустимо.Объявление
Objective C
#define CMTIMERANGE_IS_INVALID(range) (! CMTIMERANGE_IS_VALID(range))
Параметры
range
Диапазон времени, который будет протестирован на недействительность.
Возвращаемое значение
true
еслиrange
недопустимо; иначе,false
.Оператор импорта
Objective C
@import CoreMedia;
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает булево значение, указывающее ли данный
CMTimeRange
допустимо.Объявление
Objective C
#define CMTIMERANGE_IS_VALID(range) ((Boolean)(CMTIME_IS_VALID(range.start) && CMTIME_IS_VALID(range.duration) && (range.duration.epoch == 0) && (range.duration.value >= 0)))
Параметры
range
Диапазон времени, который будет протестирован на законность.
Возвращаемое значение
true
еслиrange
допустимо; иначе,false
.Оператор импорта
Objective C
@import CoreMedia;
Доступность
Доступный в OS X v10.7 и позже.
-
Диапазон времени, представленный как два
CMTime
структуры.Объявление
Поля
start
Время начала диапазона времени.
duration
Продолжительность диапазона времени.
Доступность
Доступный в OS X v10.7 и позже.
-
Структура для указания отображения сегмента одной временной шкалы в другого.
Объявление
Swift
struct CMTimeMapping { var source: CMTimeRange var target: CMTimeRange }
Objective C
typedef struct { CMTimeRange source; CMTimeRange target; } CMTimeMapping;
Поля
source
Диапазон времени на исходной временной шкале.
Для пустого редактирования,
source.start
недопустимый CMTime, когда проигнорирован source.duration. Иначе,source.start
время начала в источнике, иsource.duration
продолжительность исходной временной шкалы, которая будет отображена на целевом диапазоне времени.target
Диапазон времени на целевой временной шкале.
Если
target.duration
иsource.duration
отличаются, тогда исходный сегмент должен играться на уровнеsource.duration /target.duration
соответствовать.Обсуждение
A
CMTimeMapping
указывает отображение сегмента одной временной шкалы (названный источником) в другую временную шкалу (названный целью). Когда используется для списков редактирования фильма, исходная временная шкала является носителями, и целевая временная шкала является дорожкой или фильмом.Доступность
Доступный в OS X v10.7 и позже.
-
Ключи для компонентов в a
CFDictionary
представление aCMTimeRange
.Объявление
Swift
let kCMTimeRangeStartKey: CFString! let kCMTimeRangeDurationKey: CFString!
Objective C
const CFStringRef kCMTimeRangeStartKey; const CFStringRef kCMTimeRangeDurationKey;
Константы
-
kCMTimeRangeStartKey
kCMTimeRangeStartKey
Ключ для поля запуска a
CMTimeRange
(CMTime).Доступный в OS X v10.7 и позже.
-
kCMTimeRangeDurationKey
kCMTimeRangeDurationKey
Ключ для масштаба времени a
CMTimeRange
(CMTime).Доступный в OS X v10.7 и позже.
Обсуждение
Преобразовать a
CMTimeRange
к и от aCFDictionary
, посмотритеCMTimeRangeCopyAsDictionary
иCMTimeRangeMakeFromDictionary
. -
-
Эти константы указывают нулевые и недопустимые диапазоны времени.
Объявление
Swift
let kCMTimeRangeZero: CMTimeRange let kCMTimeRangeInvalid: CMTimeRange
Objective C
const CMTimeRange kCMTimeRangeZero; const CMTimeRange kCMTimeRangeInvalid;
Константы