AVAssetImageGenerator
AVAssetImageGenerator
объект обеспечивает миниатюру или изображения предварительного просмотра активов независимо от воспроизведения.
AVAssetImageGenerator
использует включенный видеотрек (и) значения по умолчанию для генерации изображений. Генерация единственного изображения в изоляции может потребовать декодирования большого количества видеокадров со сложными взаимозависимостями. При требовании серии изображений можно достигнуть намного большей эффективности с помощью асинхронного метода, generateCGImagesAsynchronouslyForTimes:completionHandler:
, который использует эффективность декодирования, подобную используемым во время воспроизведения.
Вы создаете использование генератора актива initWithAsset:
или assetImageGeneratorWithAsset:
. Даже если актив не обладает никакими визуальными дорожками во время инициализации, эти методы могут успешно выполниться. Можно протестировать, имеет ли актив какие-либо дорожки с визуальной характеристикой с помощью AVAsset
метод классаtracksWithMediaCharacteristic:
.
Фактическое время сгенерированного изображения в диапазоне [requestedTime
-requestedTimeToleranceBefore
, requestedTime
+requestedTimeToleranceAfter
] и может отличаться с требуемого времени для эффективности.
Активы, представляющие непостоянные составы или непостоянные фильмы, могут получить визуальные дорожки после инициализации связанного генератора изображения.
Оператор импорта
Swift
import AVFoundation
Objective C
@import AVFoundation;
Доступность
Доступный в OS X v10.7 и позже.
-
Инициализирует генератор изображения для использования с указанным активом.
Объявление
Swift
init!(asset
asset
: AVAsset!)Objective C
- (instancetype)initWithAsset:(AVAsset *)
asset
Параметры
asset
Актив, из которого будут извлечены изображения.
Возвращаемое значение
Генератор изображения, инициализированный для использования с
asset
.Обсуждение
Даже если актив не обладает никакими визуальными дорожками во время инициализации, этот метод может успешно выполниться.
Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
Возвращает генератор изображения для использования с указанным активом.
Объявление
Objective C
+ (AVAssetImageGenerator *)assetImageGeneratorWithAsset:(AVAsset *)
asset
Параметры
asset
Актив, из которого будут извлечены изображения.
Возвращаемое значение
Генератор изображения для использования с
asset
.Обсуждение
Даже если актив не обладает никакими визуальными дорожками во время инициализации, этот метод может успешно выполниться.
Оператор импорта
Objective C
@import AVFoundation;
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
Возвращает CGImage для актива в или около требуемого времени.
Объявление
Swift
func copyCGImageAtTime(_
requestedTime
: CMTime, actualTimeactualTime
: UnsafeMutablePointer<CMTime>, erroroutError
: NSErrorPointer) -> CGImage!Objective C
- (CGImageRef)copyCGImageAtTime:(CMTime)
requestedTime
actualTime:(CMTime *)actualTime
error:(NSError **)outError
Параметры
requestedTime
Время, в которое должно быть создано изображение актива.
actualTime
По возврату, содержит время, в которое было фактически сгенерировано изображение.
Если Вы не интересуетесь этой информацией, передачей
NULL
.outError
Если ошибка происходит, по возврату содержит
NSError
объект, описывающий проблему.Если Вы не интересуетесь этой информацией, передачей
NULL
.Возвращаемое значение
CGImage для актива в или около требуемого времени, или
NULL
если не могло бы быть создано изображение.Этот метод соблюдает Создать Правило.
Обсуждение
Этот метод возвращает изображение синхронно.
Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
generateCGImagesAsynchronouslyForTimes (_: completionHandler:) - generateCGImagesAsynchronouslyForTimes:completionHandler:
Создает серию объектов CGImage для актива в или около требуемого времени.
Объявление
Swift
func generateCGImagesAsynchronouslyForTimes(_
requestedTimes
: [AnyObject]!, completionHandlerhandler
: AVAssetImageGeneratorCompletionHandler!)Objective C
- (void)generateCGImagesAsynchronouslyForTimes:(NSArray *)
requestedTimes
completionHandler:(AVAssetImageGeneratorCompletionHandler)handler
Параметры
requestedTimes
Массив
NSValue
объекты, каждый содержащий aCMTime
, указание времен актива, в которые требуют изображение.handler
Блок, который вызывают, когда запрос изображения завершен.
Обсуждение
Этот метод использует эффективный «пакетный режим» для получения изображений в порядке времени.
Клиент получает точно один обратный вызов обработчика в течение каждого требуемого раза в
requestedTimes
. Изменения в свойствах генератора (поспешное поведение, максимальный размер, и т.д.) не влияют на незаконченные асинхронные запросы формирования изображения.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
Отмены все незаконченные запросы формирования изображения.
Объявление
Swift
func cancelAllCGImageGeneration()
Objective C
- (void)cancelAllCGImageGeneration
Обсуждение
Это вызовы метода блок обработчика с
AVAssetImageGeneratorCancelled
в течение каждого раза изображения в каждом предыдущем вызовеgenerateCGImagesAsynchronouslyForTimes:completionHandler:
для которого еще не были предоставлены изображения.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
Максимальный отрезок времени перед требуемым временем, в течение которого может быть сгенерировано изображение.
Объявление
Swift
var requestedTimeToleranceBefore: CMTime
Objective C
@property(nonatomic) CMTime requestedTimeToleranceBefore
Обсуждение
Значение по умолчанию
kCMTimePositiveInfinity
.Установите значения
requestedTimeToleranceBefore
иrequestedTimeToleranceAfter
кkCMTimeZero
запрашивать точное кадром формирование изображения; это может подвергнуться дополнительной задержке декодирования.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
Максимальный отрезок времени после требуемого времени, в течение которого может быть сгенерировано изображение.
Объявление
Swift
var requestedTimeToleranceAfter: CMTime
Objective C
@property(nonatomic) CMTime requestedTimeToleranceAfter
Обсуждение
Значение по умолчанию
kCMTimePositiveInfinity
.Установите значения
requestedTimeToleranceBefore
иrequestedTimeToleranceAfter
кkCMTimeZero
запрашивать точное кадром формирование изображения; это может подвергнуться дополнительной задержке декодирования.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
apertureMode apertureMode
СвойствоУказывает апертурный режим для сгенерированного изображения.
Объявление
Swift
var apertureMode: String!
Objective C
@property(nonatomic, copy) NSString *apertureMode
Обсуждение
Значение по умолчанию
AVAssetImageGeneratorApertureModeCleanAperture
.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
Указывает, применить ли матрицу дорожки (или матрицы) при извлечении изображения из актива.
Объявление
Swift
var appliesPreferredTrackTransform: Bool
Objective C
@property(nonatomic) BOOL appliesPreferredTrackTransform
Обсуждение
Значение по умолчанию
NO
false
.AVAssetImageGenerator
только вращение поддержек 90, 180, или 270 градусов.Это свойство проигнорировано при установке значения для
videoComposition
свойство.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
Экземпляр
AVAsset
с которым был инициализирован AVAssetImageGenerator. (только для чтения)Объявление
Swift
var asset: AVAsset! { get }
Objective C
@property(nonatomic, readonly) AVAsset *asset
Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.9 и позже.
-
maximumSize maximumSize
СвойствоУказывает максимальные размерности для сгенерированного изображения.
Обсуждение
Значение по умолчанию
CGSizeZero
, который указывает немасштабированные размерности актива.AVAssetImageGenerator
масштабы отображают таким образом, что они соответствуют в определенной ограничительной рамке. Изображения никогда не увеличиваются. Форматное соотношение масштабированного изображения определяетсяapertureMode
свойство.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
videoComposition videoComposition
СвойствоВидео состав для использования при извлечении изображений из активов с многократными видеотреками.
Объявление
Swift
@NSCopying var videoComposition: AVVideoComposition!
Objective C
@property(nonatomic, copy) AVVideoComposition *videoComposition
Обсуждение
Если никакой видео состав не будет указан, то только первый включенный видеотрек будет использоваться. Если видео состав указан,
appliesPreferredTrackTransform
свойство проигнорировано.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
Возвращает пользовательский видео используемый экземпляр наборщика, если любой (только для чтения)
Объявление
Swift
var customVideoCompositor: AVVideoCompositing! { get }
Objective C
@property(nonatomic, readonly) id< AVVideoCompositing > customVideoCompositor
Обсуждение
Пользовательский видео экземпляр наборщика, использующийся во время формирования изображения, доступен через это свойство после значения
videoComposition
установлен вAVVideoComposition
экземпляр, указывающий пользовательский видео класс наборщика. Любая дополнительная коммуникация между приложением и тем экземпляром пользовательского видео наборщика, если кто-либо требуется для конфигурации или других целей, может только произойти, как только это произошло.Если значение
videoComposition
изменяется отAVVideoComposition
это указывает пользовательский видео класс наборщика другого экземпляраAVVideoComposition
это указывает тот же пользовательский видео класс наборщика, экземпляр ранее создававшегося пользовательского видео наборщика получитrenderContextChanged:
обменивайтесь сообщениями и останьтесь в использовании для последующего формирования изображения.Это свойство
nil
если внутренний видео наборщик используется, если нет никакого видео наборщика, или.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.9 и позже.
Типы данных
-
Этот тип указывает подпись для блока, вызванного когда
generateCGImagesAsynchronouslyForTimes:completionHandler:
завершился.Объявление
Swift
typealias AVAssetImageGeneratorCompletionHandler = (CMTime, CGImage!, CMTime, AVAssetImageGeneratorResult, NSError!) -> Void
Objective C
typedef void (^AVAssetImageGeneratorCompletionHandler)(CMTime requestedTime, CGImageRef image, CMTime actualTime, AVAssetImageGeneratorResult result, NSError *error)
Обсуждение
Блок берет пять параметров:
requestedTime
Время, на которое Вы запросили изображение.
image
Изображение, сгенерированное, или
NULL
если не могло бы быть сгенерировано изображение.Этот параметр соблюдает Получить Правило.
actualTime
Время, в которое было фактически сгенерировано изображение.
result
Код результата, указывающий, успешно выполнился ли процесс формирования изображения, отказавший, или был отменен.
error
Если
result
AVAssetImageGeneratorFailed
, ошибочный объект, описывающий проблему.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
Константы для указания апертурного режима.
Объявление
Swift
let AVAssetImageGeneratorApertureModeCleanAperture: NSString! let AVAssetImageGeneratorApertureModeProductionAperture: NSString! let AVAssetImageGeneratorApertureModeEncodedPixels: NSString!
Objective C
NSString *const AVAssetImageGeneratorApertureModeCleanAperture; NSString *const AVAssetImageGeneratorApertureModeProductionAperture; NSString *const AVAssetImageGeneratorApertureModeEncodedPixels;
Константы
-
AVAssetImageGeneratorApertureModeCleanAperture
AVAssetImageGeneratorApertureModeCleanAperture
И попиксельная пропорция и чистая апертура будут применены..
Доступный в OS X v10.7 и позже.
-
AVAssetImageGeneratorApertureModeProductionAperture
AVAssetImageGeneratorApertureModeProductionAperture
Только попиксельная пропорция будет применена.
Доступный в OS X v10.7 и позже.
-
AVAssetImageGeneratorApertureModeEncodedPixels
AVAssetImageGeneratorApertureModeEncodedPixels
Ни попиксельная пропорция, ни чистая апертура не будут применены.
Доступный в OS X v10.7 и позже.
-
-
Константы для указания результата формирования изображения.
Объявление
Swift
enum AVAssetImageGeneratorResult : Int { case Succeeded case Failed case Cancelled }
Objective C
{ AVAssetImageGeneratorSucceeded, AVAssetImageGeneratorFailed, AVAssetImageGeneratorCancelled, }; typedef NSInteger AVAssetImageGeneratorResult;
Константы
-
Succeeded
AVAssetImageGeneratorSucceeded
Указывает то формирование изображения, за которым следуют.
Доступный в OS X v10.7 и позже.
-
Failed
AVAssetImageGeneratorFailed
Указывает то отказавшее формирование изображения.
Доступный в OS X v10.7 и позже.
-
Cancelled
AVAssetImageGeneratorCancelled
Указывает, что было отменено формирование изображения.
Доступный в OS X v10.7 и позже.
Обсуждение
Эти константы используются в блочном обработчике завершения для
generateCGImagesAsynchronouslyForTimes:completionHandler:
.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-