AVVideoComposition
AVVideoComposition
объект представляет неизменный видео состав.
Платформа Основы AV также обеспечивает непостоянный подкласс, AVMutableVideoComposition
, то, что можно использовать для создания новых видео.
Видео состав описывает, в течение любого времени в совокупном диапазоне времени его инструкций, числа и IDs видеотреков, которые должны использоваться для создания составленного видеокадра, соответствующего тому времени. Когда встроенный видео наборщик Основы AV используется, инструкции AVVideoComposition
содержите может указать пространственную трансформацию, значение непрозрачности и прямоугольник кадрирования для каждого источника видеосигнала, и они могут варьироваться в течение долгого времени через простые линейные сползающие функции.
Можно реализовать собственного видео наборщика путем реализации AVVideoCompositing
протокол; пользовательскому видео наборщику предоставлены пиксельными буферами для каждого из его источников видеосигнала во время воспроизведения и других операций и может выполнить произвольные графические операции на них для создания визуального вывода.
Наследование
-
NSObject
-
AVVideoComposition
-
AVMutableVideoComposition
-
NSObject
-
AVVideoComposition
-
AVMutableVideoComposition
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCopying
-
NSMutableCopying
-
NSObjectProtocol
-
Печатаемый
-
NSCopying
-
NSMutableCopying
-
NSObject
Оператор импорта
Swift
import AVFoundation
Objective C
@import AVFoundation;
Доступность
Доступный в OS X v10.7 и позже.
-
Создает и возвращает видео объект состава, сконфигурированный для представления видеотреков указанного актива.
Объявление
Swift
init!(propertiesOfAsset
asset
: AVAsset!) -> AVVideoCompositionObjective C
+ (AVVideoComposition *)videoCompositionWithPropertiesOfAsset:(AVAsset *)
asset
Параметры
asset
Актив, конфигурация которого соответствует надлежащее использование видео состава.
Возвращаемое значение
Новый видео объект состава.
Обсуждение
Этот метод создает видео объект состава и конфигурирует его со значениями и инструкциями, подходящими для представления видеотреков указанного актива. Возвращенный объект содержит инструкции, уважающие пространственные свойства и диапазоны времени видеотреков указанного актива. Это также конфигурирует свойства объектов следующим образом:
Значение
frameDuration
свойство установлено в значение, достаточно короткое для размещения самого большого номинального значения частоты кадров среди видеотреков актива, как обозначеноnominalFrameRate
свойство каждой дорожки. Если все дорожки актива имеют номинальную частоту кадров 0, частота кадров 30 кадров в секунду используется с набором продолжительности кадра соответственно.Значение присвоилось к
renderSize
свойство зависит от того, является ли активAVComposition
объект. Если это, значение установлено в значениеnaturalSize
свойство состава. Если это не, значение установлено в значение, охватывающее все видеотреки актива.Значение
renderScale
свойство установлено в1.0
.Значение
animationTool
свойство установлено вnil
.
Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.9 и позже.
-
frameDuration frameDuration
СвойствоИнтервал, для которого видео состав должен представить составленные видеокадры. (только для чтения)
Объявление
Swift
var frameDuration: CMTime { get }
Objective C
@property(nonatomic, readonly) CMTime frameDuration
Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
renderSize renderSize
СвойствоРазмер, в котором видео состав должен представить. (только для чтения)
Объявление
Swift
var renderSize: CGSize { get }
Objective C
@property(nonatomic, readonly) CGSize renderSize
Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
инструкции инструкции
СвойствоВидео инструкции состава. (только для чтения)
Объявление
Swift
var instructions: [AnyObject]! { get }
Objective C
@property(nonatomic, readonly, copy) NSArray *instructions
Обсуждение
Массив содержит экземпляров
AVVideoCompositionInstruction
.Для первой инструкции в массиве,
timeRange.start
должно быть меньше чем или равно самому раннему времени, в течение которого будут опробованы воспроизведение или другая обработка (обычноkCMTimeZero
). Для последующих инструкций,timeRange.start
должно быть равно времени окончания предшествующей инструкции. Время окончания последней инструкции должно быть больше, чем или равным последнему времени, в течение которого будут опробованы воспроизведение или другая обработка (обычно быть продолжительностью актива, с который экземплярAVVideoComposition
связан).Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
animationTool animationTool
СвойствоВидео инструмент состава для использования с Базовой Анимацией в оффлайновом рендеринге. (только для чтения)
Объявление
Swift
var animationTool: AVVideoCompositionCoreAnimationTool! { get }
Objective C
@property(nonatomic, readonly, retain) AVVideoCompositionCoreAnimationTool *animationTool
Обсуждение
Этот атрибут может быть
nil
.Вы устанавливаете инструмент анимации при использовании состава в сочетании с
AVAssetExportSession
для оффлайнового рендеринга, а не сAVPlayer
.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
Пользовательский класс наборщика использования. (только для чтения)
Объявление
Swift
var customVideoCompositorClass: AnyObject.Type! { get }
Objective C
@property(nonatomic, readonly) Class< AVVideoCompositing > customVideoCompositorClass
Обсуждение
Значение по умолчанию
nil
, указание внутреннего видео наборщика используется.customVideoCompositorClass
должен реализоватьAVVideoCompositing
протокол.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.9 и позже.
-
Указывает, соответствуют ли диапазоны времени инструкций состава требованиям проверки.
Объявление
Swift
func isValidForAsset(_
asset
: AVAsset!, timeRangetimeRange
: CMTimeRange, validationDelegatevalidationDelegate
: AVVideoCompositionValidationHandling!) -> BoolObjective C
- (BOOL)isValidForAsset:(AVAsset *)
asset
timeRange:(CMTimeRange)timeRange
validationDelegate:(id<AVVideoCompositionValidationHandling>)validationDelegate
Параметры
asset
AVAsset
объект, если Вы хотите проверить диапазоны времени инструкций против продолжительности актива и дорожки IDs инструкций уровня против дорожек актива.Передача
nil
пропускать ту проверку.timeRange
Диапазон времени.
Только те инструкции с диапазонами времени, накладывающимися с этим диапазоном времени, будут проверены. Проверить все инструкции, которые могут использоваться для воспроизведения или другой обработки, независимо от диапазона времени, передачи
CMTimeRangeMake(kCMTimeZero, kCMTimePositiveInfinity)
.validationDelegate
Указывает объект, реализовывая
AVVideoCompositionValidationHandling
протокол для получения подробной информации о проблематичных частях видео состава во время обработки.Передача
nil
если Вы не хотите быть информированными о подробных данных.Возвращаемое значение
YES
true
если диапазоны времени инструкций состава соответствуют требованиям проверки, иначеNO
false
.Обсуждение
В ходе проверки получатель вызовет своего делегата (если будет один) в отношении любых горячих точек в видео составе.
Этот метод повышает исключение, если делегат изменяет массив получателя инструкций или массив инструкций уровня кого-либо
AVVideoCompositionInstruction
объект, содержавший там во время проверки.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.8 и позже.