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: BoolObjective C
@property(nonatomic) BOOL alwaysCopiesSampleDataОбсуждение
Когда значение этого свойства
YEStrue, вывод всегда продает буфер со скопированными данными — можно свободно изменить данные в таких буферах.Когда значение этого свойства
NOfalse, продаваемые буферы не могут быть скопированы — на такие буферы могут все еще сослаться другие объекты. Результат изменения буфера, данные которого не были скопированы, не определен.Запрос буферов, данные которых не были скопированы, если это возможно, может привести к повышениям производительности.
Значение по умолчанию этого свойства
YEStrueОператор импорта
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Обсуждение
Когда значение
supportsRandomAccessYEStrue, присоединенный читатель актива не будет совершенствоваться к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был установлен вYEStrueи может не быть вызван после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: BoolObjective C
@property(nonatomic) BOOL supportsRandomAccessОбсуждение
Когда значение этого свойства
YEStrue, диапазоны времени, считанные выводом читателя актива, могут быть реконфигурированы во время чтения использованияresetForReadingTimeRanges:метод. Это также предотвращает присоединенныйAVAssetReaderэкземпляр от развития доAVAssetReaderStatusCompletedдоmarkConfigurationAsFinalбыл вызван.Значение по умолчанию
NOfalse, что означает, что вывод читателя актива не может быть реконфигурирован, как только чтение имеет, начинаются. Когда значение этого свойстваNOfalse,AVAssetReaderкогда многократные выводы читателя актива присоединяются, экземпляр может быть в состоянии считать данные носителей более эффективно, особенно.Это свойство не может быть установлено после
startReadingбыл вызван на присоединенном читателе актива.Оператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в OS X v10.10 и позже.
