AVAssetReaderOutput
AVAssetReaderOutput
абстрактный класс, определяющий интерфейс для чтения единственного набора выборок общего типа среды от AVAssetReader
объект.
Существует несколько подклассов AVAssetReaderOutput
для определенных задач, такой как AVAssetReaderTrackOutput
или AVAssetReaderVideoCompositionOutput
.
Можно считать данные носителей актива путем добавления один или несколько конкретные экземпляры AVAssetReaderOutput
к AVAssetReader
объектное использование addOutput:
.
Наследование
Оператор импорта
Swift
import AVFoundation
Objective C
@import AVFoundation;
Доступность
Доступный в OS X v10.7 и позже.
-
Синхронно копирует следующий демонстрационный буфер для вывода.
Объявление
Swift
func copyNextSampleBuffer() -> CMSampleBuffer!
Objective C
- (CMSampleBufferRef)copyNextSampleBuffer
Возвращаемое значение
Выходной демонстрационный буфер, или
NULL
при отсутствии более демонстрационных буферов, доступных для вывода в диапазоне времени, указанном читателем активаtimeRange
свойство. Владение соблюдает Создать Правило.Обсуждение
Если возвращается этот метод
NULL
, необходимо проверить значение связанногоAVAssetReader
объектstatus
свойство для определения, почему не могло быть считано больше выборок.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
Указывает, копируются ли данные в буферах прежде чем быть продаваемым.
Объявление
Swift
var alwaysCopiesSampleData: Bool
Objective C
@property(nonatomic) BOOL alwaysCopiesSampleData
Обсуждение
Когда значение этого свойства
YES
true
, вывод всегда продает буфер со скопированными данными — можно свободно изменить данные в таких буферах.Когда значение этого свойства
NO
false
, продаваемые буферы не могут быть скопированы — на такие буферы могут все еще сослаться другие объекты. Результат изменения буфера, данные которого не были скопированы, не определен.Запрос буферов, данные которых не были скопированы, если это возможно, может привести к повышениям производительности.
Значение по умолчанию этого свойства
YES
true
Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.8 и позже.
-
Строка, представляющая тип среды дорожки (или дорожек) представленный выводом. (только для чтения)
Объявление
Swift
var mediaType: String! { get }
Objective C
@property(nonatomic, readonly) NSString *mediaType
Обсуждение
Значение этого свойства является одной из строк типа среды, определенных в AVMediaFormat.h.
Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
Сообщает получателю, что больше реконфигурирования диапазонов времени не необходимо и позволяет присоединенный
AVAssetReader
совершенствоваться к AVAssetReaderStatusCompleted.Объявление
Swift
func markConfigurationAsFinal()
Objective C
- (void)markConfigurationAsFinal
Обсуждение
Когда значение
supportsRandomAccess
YES
true
, присоединенный читатель актива не будет совершенствоваться кAVAssetReaderStatusCompleted
пока этот метод не вызывают.Когда место назначения данных носителей, продаваемых получателем,
AVAssetWriterInput
сконфигурированный для многопроходного кодирования, удобное время для вызова этого метода после того, как ввод писателя актива указывает, что не будет выполняться больше передач.Как только этот метод вызвали, дальнейшие вызовы
resetForReadingTimeRanges:
запрещены.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.10 и позже.
-
Перезапуски, читающие с новым набором диапазонов времени.
Объявление
Swift
func resetForReadingTimeRanges(_
timeRanges
: [AnyObject]!)Objective C
- (void)resetForReadingTimeRanges:(NSArray *)
timeRanges
Параметры
timeRanges
Массив
NSValue
объекты, каждый представляющий синглCMTimeRange
структура.Обсуждение
Этот метод может только использоваться если
supportsRandomAccess
был установлен вYES
true
и может не быть вызван послеmarkConfigurationAsFinal
был вызван.Этот метод часто используется в сочетании с
AVAssetWriter
многопроходный. Когда используется как таковой, вызывающая сторона вызываетcopyNextSampleBuffer
до того метода возвратыNULL
и затем спрашиваетAVAssetWriterInput
для ряда времени колеблется, от которого считается, что должны быть повторно закодированы данные носителей. Эти диапазоны времени тогда передаются этому методу для установки вывода читателя актива для следующей передачи.Набор диапазонов времени здесь переопределяет набор диапазона времени на
AVAssetReader
экземплярtimeRange
свойство. Так же, как с тем свойством, в течение каждого раза располагаются в массиве пересечение того диапазона времени иCMTimeRangeMake(kCMTimeZero, asset.duration)
вступит в силу. Если времена запуска каждого диапазона раза в массиве строго не увеличиваются или если в два или больше раза диапазоны в перекрытии массива,NSInvalidArgumentException
будет повышен. Это - ошибка включать диапазон времени с нечисловым временем начала или продолжительностью (CMTIME_IS_NUMERIC
), если продолжительность неkCMTimePositiveInfinity
.Если этот метод вызывается после состояния присоединенного
AVAssetReader
экземпляр сталAVAssetReaderStatusFailed
илиAVAssetReaderStatusCancelled
, никакое изменение в состоянии не произойдет и результат следующего вызова кcopyNextSampleBuffer
будетNULL
.Если этот метод вызывается, прежде чем все данные носителей были считаны, например,
copyNextSampleBuffer
еще не возвратилсяNULL
, исключение выдается. Этот метод нельзя вызвать преждеstartReading
был вызван на присоединенного читателя актива.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.10 и позже.
-
supportsRandomAccess supportsRandomAccess
СвойствоБулево значение, указывающее, вывел ли читатель актива реконфигурирование поддержек диапазонов времени для чтения.
Объявление
Swift
var supportsRandomAccess: Bool
Objective C
@property(nonatomic) BOOL supportsRandomAccess
Обсуждение
Когда значение этого свойства
YES
true
, диапазоны времени, считанные выводом читателя актива, могут быть реконфигурированы во время чтения использованияresetForReadingTimeRanges:
метод. Это также предотвращает присоединенныйAVAssetReader
экземпляр от развития доAVAssetReaderStatusCompleted
доmarkConfigurationAsFinal
был вызван.Значение по умолчанию
NO
false
, что означает, что вывод читателя актива не может быть реконфигурирован, как только чтение имеет, начинаются. Когда значение этого свойстваNO
false
,AVAssetReader
когда многократные выводы читателя актива присоединяются, экземпляр может быть в состоянии считать данные носителей более эффективно, особенно.Это свойство не может быть установлено после
startReading
был вызван на присоединенном читателе актива.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.10 и позже.