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

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

Разработчик

Ссылка платформы AVFoundation ссылка класса AVAssetWriterInput

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

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

AVAssetWriterInput

Вы используете AVAssetWriterInput добавлять выборки носителей, упакованные как объекты CMSampleBuffer (см. CMSampleBufferRef), или наборы метаданных, к одноколейному пути выходного файла AVAssetWriter объект.

Когда существуют многократные вводы, AVAssetWriter попытки записать данные носителей в идеальном образце чередования для эффективности в хранении и воспроизведении. Каждый из его вводов сигнализирует свою готовность получить данные носителей для записи согласно тому образцу через значение readyForMoreMediaData. Если readyForMoreMediaData YEStrue, ввод может принять дополнительные данные носителей при поддержании надлежащего чередования. Можно только добавить данные носителей к вводу в то время как readyForMoreMediaData свойство YEStrue.

  • Если Вы пишете данные носителей из источника нев реальном времени, такого как экземпляр AVAssetReader, необходимо удержать при генерации или получении большего количества данных носителей для добавления к вводу когда значение readyForMoreMediaData NOfalse. Для помощи с управлением предоставления данных носителей нев реальном времени можно использовать requestMediaDataWhenReadyOnQueue:usingBlock: указать блок, который должен вызвать ввод каждый раз, когда это готово к вводу быть добавленным.

  • Если Вы пишете данные носителей из источника в реальном времени такой как AVCaptureOutput объект, необходимо установить ввод expectsMediaDataInRealTime свойство к YEStrue гарантировать что значение readyForMoreMediaData вычисляется соответственно. Когда expectsMediaDataInRealTime YEStrue, readyForMoreMediaData станет NOfalse только, когда ввод не может обработать выборки носителей так быстро, как им предоставлен клиент. Если readyForMoreMediaData становится NOfalse для источника в реальном времени клиент, возможно, должен отбросить выборки или рассмотреть сокращение скорости передачи данных добавленных выборок.

Значение readyForMoreMediaData будет часто изменяться от NOfalse к YEStrue асинхронно, поскольку ранее предоставленные данные носителей обработаны и записаны в вывод. Для всего актива вводы писателя временно возможно возвратиться NOfalse для readyForMoreMediaData.

Наследование


Соответствует


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


Swift

import AVFoundation

Objective C

@import AVFoundation;

Доступность


Доступный в OS X v10.7 и позже.
  • Возвращает новый входной объект писателя, инициализированный с указанным типом среды и выходными настройками.

    Объявление

    Objective C

    + (AVAssetWriterInput *)assetWriterInputWithMediaType:(NSString *)mediaType outputSettings:(NSDictionary *)outputSettings

    Параметры

    mediaType

    Тип выборок, которые будут приняты входным объектом. Для списка типов среды см. Ссылку Констант Основы AV.

    outputSettings

    Настройки, используемые для кодирования носителей, добавленных к выводу. Передача nil указать, что не должны быть повторно закодированы добавленные выборки.

    Ключи настроек аудиовыхода определяются в Константах Параметров звука Основы AV. Ключи настроек видеовыхода определяются в Ссылке Констант Основы AV. Настройки видеовыхода с ключами от <CoreVideo/CVPixelBuffer.h> в настоящее время не поддерживаются.

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

    Новый входной объект писателя, который может принять выборки указанного типа среды и записать им в выходной файл.

    Обсуждение

    Каждый новый ввод принимает данные для новой дорожки выходного файла писателя актива. Вы добавляете ввод к писателю актива, использующему AVAssetWriter метод addInput:.

    Передача nil для outputSettings дает вводу команду проходить через добавленные выборки, не делая никакой обработки, прежде чем они будут записаны в выходной файл. Это полезно, например, при добавлении буферов, которые уже находятся в желательном сжатом формате.

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

    Objective C

    @import AVFoundation;

    Доступность

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

  • Возвращает новый входной объект писателя, инициализированный с указанным типом среды, выходными настройками и подсказкой исходного формата.

    Объявление

    Objective C

    + (AVAssetWriterInput *)assetWriterInputWithMediaType:(NSString *)mediaType outputSettings:(NSDictionary *)outputSettings sourceFormatHint:(CMFormatDescriptionRef)sourceFormatHint

    Параметры

    mediaType

    Тип среды выборок, которые будут приняты входным объектом. Для списка типов среды см. Ссылку Констант Основы AV.

    outputSettings

    Укажите словарь, содержащий настройки, используемые для кодирования носителей, добавленных к выводу. Можно передать nil если Вы не хотите, чтобы были повторно закодированы добавленные выборки.

    Ключи настроек аудиовыхода определяются в Константах Параметров звука Основы AV. Ключи настроек видеовыхода определяются в Ссылке Констант Основы AV. Настройки видеовыхода с ключами от <CoreVideo/CVPixelBuffer.h> в настоящее время не поддерживаются.

    sourceFormatHint

    Этот параметр содержит подсказку типа буферов формата, которые будут добавлены. При указании значения для этого параметра входной объект писателя может быть в состоянии заполнить без вести пропавших выходных настроек или выполнить больше первичной проверки. При указании значения для этого свойства необходимо удостовериться, что буферы, которые Вы добавляете, имеют обозначенный тип.

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

    Новый входной объект писателя, который может принять выборки указанного типа среды и записать им в выходной файл.

    Обсуждение

    Каждый новый ввод принимает данные для новой дорожки выходного файла писателя актива. Вы добавляете ввод к писателю актива, использующему AVAssetWriter метод addInput:.

    Передача nil для вывода настройки дает вводу команду проходить через добавленные выборки, не делая никакой обработки, прежде чем они будут записаны в выходной файл. Это полезно, например, при добавлении буферов, которые уже находятся в желательном сжатом формате. Однако пишущий в файл фильма в формате QuickTime (т.е. AVAssetWriter был инициализирован с типом файла кроме AVFileTypeQuickTimeMovie), AVAssetWriter только поддержки, проходящие через ограниченный набор типов среды и подтипов. Для прохождения через данные носителей к файлам кроме AVFileTypeQuickTimeMovie, не -NULL подсказка формата должна быть предоставлена.

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

    Objective C

    @import AVFoundation;

    Доступность

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

  • Инициализируйте входной объект писателя с указанным типом среды и выведите настройки.

    Объявление

    Swift

    init!(mediaType mediaType: String!, outputSettings outputSettings: [NSObject : AnyObject]!)

    Objective C

    - (instancetype)initWithMediaType:(NSString *)mediaType outputSettings:(NSDictionary *)outputSettings

    Параметры

    mediaType

    Тип среды выборок, которые будут приняты входным объектом. Для списка типов среды см. Ссылку Констант Основы AV.

    outputSettings

    Укажите словарь, содержащий настройки, используемые для кодирования носителей, добавленных к выводу. Можно передать nil для этого параметра, если Вы не хотите, чтобы были повторно закодированы добавленные выборки.

    Ключи настроек аудиовыхода определяются в Константах Параметров звука Основы AV. Ключи настроек видеовыхода определяются в Ссылке Констант Основы AV. Настройки видеовыхода с ключами от CVPixelBufferRef в настоящее время не поддерживаются.

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

    Инициализированный входной объект писателя, который может принять выборки указанного типа среды и записать им в выходной файл.

    Обсуждение

    Каждый новый ввод принимает данные для новой дорожки выходного файла писателя актива. Вы добавляете ввод к писателю актива, использующему AVAssetWriter метод addInput:.

    Передача nil для вывода настройки дает вводу команду проходить через добавленные выборки, не делая никакой обработки, прежде чем они будут записаны в выходной файл. Это полезно, например, при добавлении буферов, которые уже находятся в желательном сжатом формате. Однако пишущий в файл фильма в формате QuickTime (т.е. AVAssetWriter был инициализирован с типом файла кроме AVFileTypeQuickTimeMovie), AVAssetWriter только поддержки, проходящие через ограниченный набор типов среды и подтипов. Для прохождения через данные носителей к файлам кроме AVFileTypeQuickTimeMovie, не -NULL с помощью подсказка формата нужно быть предоставлены initWithMediaType:outputSettings:sourceFormatHint: вместо этого метода.

    Когда mediaType параметр AVMediaTypeAudio, outputSettings словарь не поддерживает AVEncoderAudioQualityKey и AVSampleRateConverterAudioQualityKey ключи. При использовании этого метода словарь параметров звука должен быть полностью указан, означая, что это должно содержать AVFormatIDKey, AVSampleRateKey, и AVNumberOfChannelsKey ключи. Если никакая другая информация макета канала не доступна, значение 1 для AVNumberOfChannelsKey ключевые результаты в моно выводе и значении 2 результаты в выводе стерео. Если AVNumberOfChannelsKey ключ указывает значение, больше, чем 2, словарь должен также указать значение для AVChannelLayoutKey ключ. Для аудио с помощью kAudioFormatLinearPCM отформатируйте, включайте всех релевантных AVLinearPCM*Key ключи. Для kAudioFormatAppleLossless отформатируйте, включайте AVEncoderBitDepthHintKey ключи. Чтобы избежать указывать значения для каждого из тех ключей, используйте initWithMediaType:outputSettings:sourceFormatHint: метод вместо этого.

    Когда mediaType параметр AVMediaTypeVideo, outputSettings словарь должен запросить сжатый формат видео. Это означает, что значения, указанные в словаре, должны соблюсти правила для сжатого видеовыхода, как описано в AVVideoSettings.h. При использовании этого инициализатора словарь параметров видео должен быть полностью указан, означая, что это должно содержать следующие ключи: AVVideoCodecKey, AVVideoWidthKey, и AVVideoHeightKey. Чтобы избежать указывать значения для каждого из тех ключей, используйте initWithMediaType:outputSettings:sourceFormatHint: метод.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • Инициализируйте входной объект писателя с указанным типом среды, выведите настройки и исходную подсказку.

    Объявление

    Swift

    init!(mediaType mediaType: String!, outputSettings outputSettings: [NSObject : AnyObject]!, sourceFormatHint sourceFormatHint: CMFormatDescription!)

    Objective C

    - (instancetype)initWithMediaType:(NSString *)mediaType outputSettings:(NSDictionary *)outputSettings sourceFormatHint:(CMFormatDescriptionRef)sourceFormatHint

    Параметры

    mediaType

    Тип среды выборок, которые будут приняты входным объектом. Для списка типов среды см. Ссылку Констант Основы AV.

    outputSettings

    Укажите словарь, содержащий настройки, используемые для кодирования носителей, добавленных к выводу. Можно передать nil для этого параметра, если Вы не хотите, чтобы были повторно закодированы добавленные выборки.

    Ключи настроек аудиовыхода определяются в Константах Параметров звука Основы AV. Ключи настроек видеовыхода определяются в Ссылке Констант Основы AV. Настройки видеовыхода с ключами от <CoreVideo/CVPixelBuffer.h> в настоящее время не поддерживаются.

    sourceFormatHint

    Этот параметр содержит подсказку типа буферов формата, которые будут добавлены. При указании значения для этого параметра входной объект писателя может быть в состоянии заполнить без вести пропавших выходных настроек или выполнить больше первичной проверки. При указании значения для этого свойства необходимо удостовериться, что буферы, которые Вы добавляете, имеют обозначенный тип.

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

    Инициализированный входной объект писателя, который может принять выборки указанного типа среды и записать им в выходной файл.

    Обсуждение

    Каждый новый ввод принимает данные для новой дорожки выходного файла писателя актива. Вы добавляете ввод к писателю актива, использующему AVAssetWriter метод addInput:.

    Передача nil для вывода настройки дает вводу команду проходить через добавленные выборки, не делая никакой обработки, прежде чем они будут записаны в выходной файл. Это полезно, например, при добавлении буферов, которые уже находятся в желательном сжатом формате. Однако пишущий в файл фильма в формате QuickTime (т.е. AVAssetWriter был инициализирован с типом файла кроме AVFileTypeQuickTimeMovie), AVAssetWriter только поддержки, проходящие через ограниченный набор типов среды и подтипов. Для прохождения через данные носителей к файлам кроме AVFileTypeQuickTimeMovie, не -NULL подсказка формата должна быть предоставлена.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • Добавляет выборки к получателю.

    Объявление

    Swift

    func appendSampleBuffer(_ sampleBuffer: CMSampleBuffer!) -> Bool

    Objective C

    - (BOOL)appendSampleBuffer:(CMSampleBufferRef)sampleBuffer

    Параметры

    sampleBuffer

    CMSampleBuffer, который будет добавлен.

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

    YEStrue если sampleBuffer, как добавлено успешно, иначе NOfalse.

    Обсуждение

    Информация синхронизации в демонстрационном буфере, который рассматривают относительно времени, передала писателю актива startSessionAtSourceTime: будет использоваться для определения синхронизации тех выборок в выходном файле.

    Если NOfalse возвращается, клиенты могут проверить значение AVAssetWriter состояние свойство, чтобы определить, была ли отменена работа записи, завершенная, неработающая, или. Если status AVAssetWriterStatusFailed, AVAssetWriter ошибка свойство будет содержать экземпляр NSErrorß, который описывает отказ.

    Не изменять sampleBuffer или его содержание после передачи его этому методу.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • Булево значение, указывающее готовность ввода принять больше данных носителей. (только для чтения)

    Объявление

    Swift

    var readyForMoreMediaData: Bool { get }

    Objective C

    @property(nonatomic, readonly, getter=isReadyForMoreMediaData) BOOL readyForMoreMediaData

    Обсуждение

    Это свойство является заметным наблюдением значения ключа использования (см., что Значение ключа Наблюдает Руководство по программированию). Наблюдатели не должны предполагать, что они будут уведомлены относительно изменений на определенном потоке.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • Говорит писателю, что больше буферов не будет добавлено к этому вводу.

    Объявление

    Swift

    func markAsFinished()

    Objective C

    - (void)markAsFinished

    Обсуждение

    Если Вы контролируете каждый ввод expectsMediaDataInRealTime когда Вы закончили добавлять буферы к дорожке, значение для хранения выходного файла хорошо чередованным важно вызвать этот метод. Это необходимо, чтобы препятствовать тому, чтобы другие вводы остановились, поскольку они могут иначе ожидать навсегда данных носителей того ввода, пытаясь завершить идеальный образец чередования.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • Дает получателю команду неоднократно вызывать блок, в его удобстве, для сбора данных носителей для записи в вывод.

    Объявление

    Swift

    func requestMediaDataWhenReadyOnQueue(_ queue: dispatch_queue_t!, usingBlock block: (() -> Void)!)

    Objective C

    - (void)requestMediaDataWhenReadyOnQueue:(dispatch_queue_t)queue usingBlock:(void (^)(void))block

    Параметры

    queue

    Очередь та, на который block должен быть вызван.

    block

    Блок ввод должен вызвать для получения данных носителей.

    Обсуждение

    Блок должен добавить данные носителей к вводу любой до ввода readyForMoreMediaData свойство становится NOfalse или до больше нет данных носителей для предоставления (в которой точке они могут принять решение отметить ввод как законченное использование markAsFinished). Блок должен тогда выйти. После блочных выходов, если ввод не был отмечен, как закончено, как только ввод обработал данные носителей, которые это получило и становится готовым к большему количеству данных носителей снова, это вызовет блок снова для получения больше.

    Типичное использование этого метода, с блоком, снабжающим данными носителей к вводу при уважении ввода readyForMoreMediaData свойство, мог бы быть похожим на это:

    • [myAVAssetWriterInput requestMediaDataWhenReadyOnQueue:myInputSerialQueue usingBlock:^{
    • while ([myAVAssetWriterInput isReadyForMoreMediaData])
    • {
    • CMSampleBufferRef nextSampleBuffer = [self copyNextSampleBufferToWrite];
    • if (nextSampleBuffer)
    • {
    • [myAVAssetWriterInput appendSampleBuffer:nextSampleBuffer];
    • CFRelease(nextSampleBuffer);
    • }
    • else
    • {
    • [myAVAssetWriterInput markAsFinished];
    • break;
    • }
    • }
    • }];

    Вы не должны использовать этот метод с буферным источником стиля нажатия, такой как AVCaptureAudioDataOutput или AVCaptureVideoDataOutput, потому что такая комбинация будет обычно требовать промежуточной организации очередей буферов. Вместо этого этот метод лучше подходит для буферного источника стиля получения по запросу такой как AVAssetReaderOutput объект.

    При использовании буферного источника стиля нажатия обычно лучше сразу добавить каждый буфер к вводу писателя актива, непосредственно поскольку это получено с помощью appendSampleBuffer:. Используя эту стратегию, часто возможно избежать иметь необходимость стоять в очереди буферы, промежуточные, буферный источник и писатель актива вводят. Обратите внимание на то, что многие из этих буферных источников стиля нажатия также производят буферы в режиме реального времени, когда необходимо установить expectsMediaDataInRealTime к YEStrue.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

    См. также

    – markAsFinished

  • Набор метаданных уровня дорожки для связи с активом и для каретки в выходном файле.

    Объявление

    Swift

    var metadata: [AnyObject]!

    Objective C

    @property(nonatomic, copy) NSArray *metadata

    Обсуждение

    Массив содержит AVMetadataItem объекты, представляющие набор метаданных уровня дорожки, которые будут записаны в выходном файле.

    Вы не можете установить это свойство после того, как запустилась запись.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • Преобразование, указанное в выходном файле как предпочтительная трансформация визуальных данных носителей в целях дисплея.

    Объявление

    Swift

    var transform: CGAffineTransform

    Objective C

    @property(nonatomic) CGAffineTransform transform

    Обсуждение

    Если никакое значение не указано, преобразование идентификационных данных используется.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • mediaTimeScale mediaTimeScale Свойство

    Указывает масштаб времени носителей, который будет использоваться

    Объявление

    Swift

    var mediaTimeScale: CMTimeScale

    Objective C

    @property(nonatomic) CMTimeScale mediaTimeScale

    Обсуждение

    Для типов файлов, поддерживающих масштабы времени носителей, такие как файлы фильма в формате QuickTime, указывает масштаб времени носителей, который будет использоваться. Значение по умолчанию этого свойства 0, который указывает, что входной объект писателя должен выбрать надлежащее значение.

    Это - ошибка присвоить значение кроме 0 к этому свойству, если объект mediaType свойство установлено в к AVMediaTypeAudio.

    Вы не можете установить это свойство после того, как запустилась запись.

    Во избежание несоответствий между масштабом времени носителей дорожки и масштабом времени носителей результата (см. AVAssetWriter свойство movieTimeScale ) оба должны быть установлены равняться или совместимые значения.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • Указывает, должен ли ввод адаптировать свою обработку данных носителей для источников в реальном времени.

    Объявление

    Swift

    var expectsMediaDataInRealTime: Bool

    Objective C

    @property(nonatomic) BOOL expectsMediaDataInRealTime

    Обсуждение

    Если Вы добавляете данные носителей к вводу из источника в реальном времени, такой как AVCaptureOutput, необходимо установить expectsMediaDataInRealTime к YEStrue. Это гарантирует это readyForMoreMediaData вычисляется соответственно для использования в реальном времени.

    Вы не можете установить это свойство после того, как запустилась запись.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • Возвраты, включена ли дорожка получателя.

    Объявление

    Swift

    var marksOutputTrackAsEnabled: Bool

    Objective C

    @property(nonatomic) BOOL marksOutputTrackAsEnabled

    Обсуждение

    Для типов файлов, поддерживающих включенный и отключенные дорожки, такие как файлы фильма в формате QuickTime, указывает, должна ли дорожка, соответствующая получателю, быть включена по умолчанию для воспроизведения и обработки.

    Значение по умолчанию YEStrue.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • naturalSize naturalSize Свойство

    Размер, указанный в выходном файле как естественные размерности визуальных данных носителей для дисплея.

    Объявление

    Swift

    var naturalSize: CGSize

    Objective C

    @property(nonatomic) CGSize naturalSize

    Обсуждение

    Если значение по умолчанию, CGSizeZero, указан, naturalSize из дорожки, соответствующей получателю, установлен согласно размерностям, обозначенным описаниями формата, в конечном счете записанными в выходную дорожку.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • preferredVolume preferredVolume Свойство

    Предпочтительный уровень громкости, который будет сохранен в выходном файле.

    Объявление

    Swift

    var preferredVolume: Float

    Objective C

    @property(nonatomic) float preferredVolume

    Обсуждение

    Значение для этого свойства должно обычно быть в диапазоне 0.0 к 1.0.

    Значение по умолчанию 1.0, который эквивалентен «нормальному» уровню громкости.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • Связывает дорожку, соответствующую указанному вводу с дорожкой, соответствующей с получателем.

    Объявление

    Swift

    func addTrackAssociationWithTrackOfInput(_ input: AVAssetWriterInput!, type trackAssociationType: String!)

    Objective C

    - (void)addTrackAssociationWithTrackOfInput:(AVAssetWriterInput *)input type:(NSString *)trackAssociationType

    Параметры

    input

    Экземпляр AVAssetWriterInput с соответствующей дорожкой для соединения с дорожкой, соответствующей с получателем.

    trackAssociationType

    Тип ассоциации дорожки для добавления. Общие типы ассоциации дорожки, такой как AVTrackAssociationTypeTimecode определяются в Track Association Types.

    Обсуждение

    Если тип ассоциации требует дорожек определенных типов среды, не соответствующих типы среды вводов, или если тип выходного файла не поддерживает ассоциации дорожки, NSInvalidArgumentException повышен.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • Допустима ли ассоциация между дорожками, соответствующими паре вводов.

    Объявление

    Swift

    func canAddTrackAssociationWithTrackOfInput(_ input: AVAssetWriterInput!, type trackAssociationType: String!) -> Bool

    Objective C

    - (BOOL)canAddTrackAssociationWithTrackOfInput:(AVAssetWriterInput *)input type:(NSString *)trackAssociationType

    Параметры

    input

    Экземпляр AVAssetWriterInput с соответствующей дорожкой для соединения с дорожкой, соответствующей с получателем.

    trackAssociationType

    Тип ассоциации дорожки для тестирования. Общие типы ассоциации дорожки, такой как AVTrackAssociationTypeTimecode определяются в Track Association Types.

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

    YEStrue если может быть добавлена ассоциация дорожки; иначе NOfalse.

    Обсуждение

    Если тип ассоциации требует дорожек определенных типов среды, не соответствующих типы среды вводов, или если тип выходного файла не поддерживает ассоциации дорожки, возвраты NOfalse.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • mediaType mediaType Свойство

    Тип среды выборок, которые могут быть добавлены к вводу. (только для чтения)

    Объявление

    Swift

    var mediaType: String! { get }

    Objective C

    @property(nonatomic, readonly) NSString *mediaType

    Обсуждение

    Значение этого свойства является одной из строк типа среды, определенных в Ссылке Констант Основы AV.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • outputSettings outputSettings Свойство

    Настройки, используемые для кодирования носителей, добавленных к выводу. (только для чтения)

    Объявление

    Swift

    var outputSettings: [NSObject : AnyObject]! { get }

    Objective C

    @property(nonatomic, readonly) NSDictionary *outputSettings

    Обсуждение

    Значение nil указывает, что не должны быть повторно закодированы добавленные выборки.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • Подсказка о формате буферов, которые будут добавлены. (только для чтения)

    Объявление

    Swift

    var sourceFormatHint: CMFormatDescription! { get }

    Objective C

    @property(nonatomic, readonly) CMFormatDescriptionRef sourceFormatHint

    Обсуждение

    AVAssetWriterInput объект может быть в состоянии использовать эту подсказку, чтобы заполнить без вести пропавших выходных настроек или выполнить больше первичной проверки.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

    См. также

    – appendSampleBuffer:

  • Для типов файлов, поддерживающих пишущие демонстрационные ссылки, такие как файлы фильма в формате QuickTime, указывает, что демонстрационные ссылки базового URL относительно.

    Объявление

    Swift

    @NSCopying var sampleReferenceBaseURL: NSURL!

    Objective C

    @property(nonatomic, copy) NSURL *sampleReferenceBaseURL

    Обсуждение

    Когда добавление демонстрационных ссылок будет относительно этого URL, если значение этого свойства может быть разрешено как абсолютный URL, демонстрационные расположения, записанные в файл. URL должен указать на расположение, которое находится в каталоге, который является родителем демонстрационного ссылочного расположения.

    Например: установка sampleReferenceBaseURL свойство к file:///User/johnappleseed/Movies/ и добавление выборки буферизует с kCMSampleBufferAttachmentKey_SampleReferenceURL присоединяемый набор к file:///User/johnappleseed/Movies/data/movie1.mov вызовет демонстрационную ссылку data/movie1.mov быть записанным в фильм.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • Языковой тег для соединения с дорожкой, соответствующей получателю

    Объявление

    Swift

    var extendedLanguageTag: String!

    Objective C

    @property(nonatomic, copy) NSString *extendedLanguageTag

    Обсуждение

    Значение указано как языковой тег RFC 4646; может быть nil когда никакой тег не записан в дорожку.

    Расширенные языковые теги обычно устанавливаются только, когда ISO, 6392/t код языка отдельно неоднозначен, как в случаях, в которых данные носителей должен отличить не только язык, но также и региональным диалектом в использовании или используемой системе письменности.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

    См. также

    languageCode

  • languageCode languageCode Свойство

    Язык для соединения с дорожкой, соответствующей получателю.

    Объявление

    Swift

    var languageCode: String!

    Objective C

    @property(nonatomic, copy) NSString *languageCode

    Обсуждение

    Значение указано как ISO 6392/t код языка; может быть nil когда никакой код языка не записан в дорожку..

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

    См. также

    extendedLanguageTag

  • Булево значение, указывающее, мог ли бы ввод выполнить многократные передачи по добавленным данным носителей. (только для чтения)

    Объявление

    Swift

    var canPerformMultiplePasses: Bool { get }

    Objective C

    @property(nonatomic, readonly) BOOL canPerformMultiplePasses

    Обсуждение

    Когда значение для этого свойства YEStrue, Ваш источник для данных носителей должен быть сконфигурирован для произвольного доступа. После добавления всех данных носителей для текущей передачи, как указано currentPassDescription свойство, вызвать markCurrentPassAsFinished запустить процесс определения, необходимы ли дополнительные передачи. Обратите внимание на то, что для ввода все еще возможно в этом случае выполнить только начальную передачу, если это решает, что не будет никакого преимущества к выполнению многократных передач.

    Когда значение для этого свойства NOfalse, Ваш источник для данных носителей только должен поддерживать последовательный доступ. В этом случае добавьте все исходные носители один раз и вызов markAsFinished.

    В конфигурации по умолчанию AVAssetWriterInput, значение для этого свойства будет NOfalse. В настоящее время единственный путь к этому свойству для становления YEStrue когда performsMultiPassEncodingIfSupported был установлен в YEStrue. Окончательное значение будет доступно после startWriting когда определенный кодер был выбран, вызывается.

    Это свойство поддерживает наблюдение значения ключа.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • Обеспечивает объект, описывающий требования, такие как исходные диапазоны времени, чтобы добавить или повторно добавить, для текущей передачи. (только для чтения)

    Объявление

    Swift

    var currentPassDescription: AVAssetWriterInputPassDescription! { get }

    Objective C

    @property(readonly) AVAssetWriterInputPassDescription *currentPassDescription

    Обсуждение

    Если значение этого свойства nil, нет никакого запроса, который будет выполнен и markAsFinished должен быть вызван на вводе писателя актива.

    Во время первой передачи запрос будет содержать единственный диапазон времени от нуля до положительной бесконечности, указывая, что должны быть добавлены все носители из источника. Это также будет истиной когда canPerformMultiplePasses NOfalse, когда будет выполняться только одна передача.

    Значение этого свойства будет nil прежде startWriting вызывается на присоединенном писателе актива. Это перейдет к начальной букве не -nil значение во время вызова к startWriting. После этого значение этого свойства изменится только после вызова к markCurrentPassAsFinished. respondToEachPassDescriptionOnQueue:usingBlock: метод допускает уведомление в начале каждой передачи.

    Это свойство поддерживает наблюдение значения ключа. Наблюдатели не должны предполагать, что они будут уведомлены относительно изменений на определенном потоке.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • Дает получателю команду анализировать данные носителей, добавленные и определяющие, могли ли бы результаты быть улучшены путем перекодирования определенных сегментов.

    Объявление

    Swift

    func markCurrentPassAsFinished()

    Objective C

    - (void)markCurrentPassAsFinished

    Обсуждение

    Когда значение canPerformMultiplePasses YEStrue, вызовите этот метод после добавления всех данных носителей. После того, как получатель анализирует, гарантирована ли дополнительная передача, значение currentPassDescription изменится (обычно асинхронно), чтобы описать, как установить для следующей передачи. Несмотря на то, что возможно использовать наблюдение значения ключа для определения когда значение currentPassDescription изменился, обычно более удобно вызвать respondToEachPassDescriptionOnQueue:usingBlock: для запуска работы для каждой передачи.

    После передобавления данных носителей для всех диапазонов времени новой передачи вызовите этот метод снова, чтобы определить, должны ли дополнительные сегменты быть повторно добавлены в другой передаче.

    Вызов этого метода эффективно отменяет любой предыдущий вызов requestMediaDataWhenReadyOnQueue:usingBlock:, значение этого requestMediaDataWhenReadyOnQueue:usingBlock: может быть вызван снова для каждой новой передачи. respondToEachPassDescriptionOnQueue:usingBlock: метод обеспечивает удобный способ консолидировать эти вызовы в Вашем коде.

    После каждой передачи у Вас есть опция хранения новых результатов путем вызова markAsFinished вместо этого метода. Если значение currentPassDescription nil в начале передачи вызвать markAsFinished сказать получателю не ожидать дальнейшие данные носителей.

    Если значение canPerformMultiplePasses NOfalse, значение currentPassDescription сразу станет nil после вызова этого метода.

    Прежде, чем вызвать этот метод, необходимо гарантировать, что получатель присоединен AVAssetWriter экземпляр через предшествующий вызов к addInput: и это startWriting был вызван на писателе актива.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • Булево значение, указывающее, должен ли ввод попытаться закодировать исходные данные носителей с помощью многократных передач.

    Объявление

    Swift

    var performsMultiPassEncodingIfSupported: Bool

    Objective C

    @property(nonatomic) BOOL performsMultiPassEncodingIfSupported

    Обсуждение

    Писатель актива ввел, может быть в состоянии достигнуть более высокого качества и/или понизить скорость передачи данных путем выполнения многократных передач по исходным носителям. Это делает это путем анализа данных носителей, добавленных и перекодирование определенных сегментов с различными параметрами. Чтобы сделать это перекодирование, данные носителей для этих сегментов должны быть добавлены снова. Посмотрите markCurrentPassAsFinished и свойство currentPassDescription для механизма, которым ввод назначает сегменты на передобавление.

    Когда значение этого свойства YEStrue, значение readyForMoreMediaData для других вводов, присоединенных к тому же AVAssetWriter может быть NOfalse чаще и/или в течение более длительных промежутков времени. В частности значение readyForMoreMediaData для вводов, не делающих (или не может) выполняют многократные передачи, может начаться как NOfalse после AVAssetWriter метод startWriting был вызван и может не измениться на YEStrue пока все многопроходные вводы не завершили свою заключительную передачу.

    Когда значение этого свойства YEStrue, ввод может хранить данные в одном или более временных файлах прежде, чем записать сжатые выборки в выходной файл. Используйте AVAssetWriter свойство directoryForTemporaryFiles если необходимо управлять расположением временной записи файла.

    Значение по умолчанию NOfalse, подразумевать, что никакой дополнительный анализ не произойдет и никакие сегменты, будет повторно закодировано. Не весь писатель актива ввел конфигурации (например, вводы, сконфигурированные с определенными типами среды или использовать определенные кодеры), может получить преимущества от выполнения многократных передач по исходным носителям. Чтобы определить, может ли выбранный кодер выполнить многократные передачи, запросите значение canPerformMultiplePasses после вызова startWriting.

    Это - ошибка установить это свойство в YEStrue когда значение для expectsMediaDataInRealTime YEStrue. Это - также ошибка для писателя актива содержать ввод с этим набором свойств к YEStrue когда любой из его других вводов имеет значение YEStrue для expectsMediaDataInRealTime.

    Это свойство не может быть установлено после записи на получателе AVAssetWriter запустился.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • Для типов файлов, поддерживающих выравнивание блока носителей, такое как файлы фильма в формате QuickTime, указывает, что граница для носителей разделяет выравнивание на блоки в байтах.

    Объявление

    Swift

    var preferredMediaChunkAlignment: Int

    Objective C

    @property(nonatomic) NSInteger preferredMediaChunkAlignment

    Обсуждение

    Значение по умолчанию 0, что означает, что получатель выберет надлежащее значение по умолчанию. Значение 1 подразумевает, что никакое дополнение не должно использоваться для достижения определенного выравнивания блока. Это - ошибка установить отрицательную величину для выравнивания блока.

    Это свойство не может быть установлено после startWriting был вызван для получателя.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • Для типов файлов, поддерживающих продолжительность блока носителей, такую как файлы фильма в формате QuickTime, указывает продолжительность, которая будет использоваться для каждого блока демонстрационных данных в выходном файле.

    Объявление

    Swift

    var preferredMediaChunkDuration: CMTime

    Objective C

    @property(nonatomic) CMTime preferredMediaChunkDuration

    Обсуждение

    Продолжительность блока может влиять на гранулярность I/O, выполняемого при чтении медиа-файла, например, во время воспроизведения. Большая продолжительность блока может привести к меньшему количеству чтений от диска за потенциальный счет более высокого объема потребляемой памяти.

    «Блок» содержит одну или более выборок. Если продолжительность выборки больше, чем эта предпочтительная продолжительность блока, общая продолжительность выборок в блоке не больше, чем эта предпочтительная продолжительность блока или продолжительность единственной выборки.

    Значение по умолчанию kCMTimeInvalid, что означает, что получатель выберет надлежащее значение по умолчанию. Это - ошибка установить продолжительность блока, которая является отрицательной или нечисловой.

    Это свойство не может быть установлено после startWriting был вызван для получателя.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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

  • Дает получателю команду вызывать предоставленный клиентами блок каждый раз, когда началась новая передача.

    Объявление

    Swift

    func respondToEachPassDescriptionOnQueue(_ queue: dispatch_queue_t!, usingBlock block: dispatch_block_t!)

    Objective C

    - (void)respondToEachPassDescriptionOnQueue:(dispatch_queue_t)queue usingBlock:(dispatch_block_t)block

    Параметры

    queue

    Очередь, на которую должен быть вызван блок.

    block

    Блок, который должен вызвать получатель каждый раз, когда началась новая передача.

    Обсуждение

    Типичный блок, переданный этому методу, выполнит следующие шаги:

    1. Запросите значение получателя currentPassDescription свойство и реконфигурировало источник данных носителей, например, экземпляра AVAssetReader, соответственно.

    2. Вызвать requestMediaDataWhenReadyOnQueue:usingBlock: начать добавлять данные для текущей передачи.

    Когда все данные носителей будут добавлены для текущего запроса, вызвать markCurrentPassAsFinished начать процесс определения, гарантирована ли дополнительная передача. Если дополнительная передача будет гарантирована, то блок, переданный этому методу, будет вызван для начала следующей передачи. Если никакие дополнительные передачи не будут необходимы, то блок, переданный этому методу, будет вызван одно заключительное время, таким образом, клиент сможет вызвать markAsFinished в ответ на значение currentPassDescription становление nil.

    Прежде, чем вызвать этот метод, необходимо гарантировать, что получатель присоединен AVAssetWriter экземпляр через предшествующий вызов к addInput: и это startWriting был вызван на писателе актива.

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

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

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