AVSampleBufferDisplayLayer
Наследование
Соответствует
-
AnyObject -
CAMediaTiming -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSObjectProtocol -
Печатаемый -
CAMediaTiming -
NSCoding -
NSObject
Оператор импорта
Swift
import AVFoundation
Objective C
@import AVFoundation;
Доступность
Доступный в iOS 8.0 и позже.
AVSampleBufferDisplayLayer класс является подклассом CALayer это выводит на экран сжатые или несжатые видеокадры.
-
Дает цели команду неоднократно вызывать предоставленный клиентами блок, в его удобстве, для сбора демонстрационных буферов для дисплея.
Объявление
Swift
func requestMediaDataWhenReadyOnQueue(_queue: dispatch_queue_t!, usingBlockblock: (() -> Void)!)Objective C
- (void)requestMediaDataWhenReadyOnQueue:(dispatch_queue_t)queueusingBlock:(void (^)(void))blockПараметры
queueОчередь отгрузки.
blockБлок, предоставляющий данные носителей.
Обсуждение
Блок, как ожидают, вызовет
enqueueSampleBuffer:для предоставления данных носителей для распаковки (если необходимый) и рендеринг в то время какreadyForMoreMediaDataсвойство остаетсяYEStrue, или пока это не может обеспечить дополнительные носители. Когда уровень декодировал достаточно данных носителей, что это готово к дополнительным данным носителей, это вызовет блок снова.Позволяя уровню дисплея определить, когда вызвать блок, реализация инкрементных операций I/O упрощена при снабжении синхронизируемыми данными носителей во время рендеринга.
Если эта функция вызвана многократно, только последняя возможность является эффективной.
Вы вызываете
stopRequestingMediaDataметод для отмены этого запроса.Каждый вызов к
requestMediaDataWhenReadyOnQueue:usingBlock:должен быть сбалансирован с соответствующего вызова кstopRequestingMediaData.Выпуск экземпляра получателя без вызова к
stopRequestingMediaDataприведет к неопределенному поведению.Оператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в iOS 8.0 и позже.
-
readyForMoreMediaDataСвойствоБулево значение, указывающее готовность уровня принять более демонстрационные буферы. (только для чтения)
Объявление
Swift
var readyForMoreMediaData: Bool { get }Objective C
@property(readonly, getter=isReadyForMoreMediaData) BOOL readyForMoreMediaDataОбсуждение
AVSampleBufferDisplayLayerотслеживает уровни заполнения его внутренних очередей в пользу клиентов, ставящих в очередь демонстрационные буферы из источников нев реальном времени — т.е. клиенты, которые могут предоставить демонстрационные буферы быстрее, чем, они используются и должны решить, когда сдержать буферы.Клиентские демонстрационные буферы постановки в очередь из источников нев реальном времени могут удержать от генерации или получения более демонстрационных буферов для постановки в очередь когда значение
readyForMoreMediaDataNOfalse.Безопасно вызвать
enqueueSampleBuffer:когдаreadyForMoreMediaDataNOfalse, но enqueing, более демонстрационные буферы, чем требуются для своевременного рендеринга получателем, высоко обескураживают.Для помощи с управлением предоставления нев реальном времени демонстрационных буферов такие клиенты должны использовать
requestMediaDataWhenReadyOnQueue:usingBlock:для указания блока, который уровень должен вызвать каждый раз, когда это готово к демонстрационным буферам быть добавленным.Значение
readyForMoreMediaDataбудет часто изменяться отNOfalseкYEStrueасинхронно, поскольку ранее предоставленные демонстрационные буферы декодируются и выводятся на экран.Оператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в iOS 8.0 и позже.
-
Отмены любой текущий запрос данных носителей.
Объявление
Swift
func stopRequestingMediaData()Objective C
- (void)stopRequestingMediaDataОбсуждение
Этот метод отменяет любой ток
requestMediaDataWhenReadyOnQueue:usingBlock:вызвать. Каждый вызовrequestMediaDataWhenReadyOnQueue:usingBlock:должен быть сбалансирован вызовом к этому методу.Этот метод можно вызвать из
requestMediaDataWhenReadyOnQueue:usingBlock:блок метода или извне блока.Оператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в iOS 8.0 и позже.
-
Дает уровню команду отбрасывать находящиеся на рассмотрении ставившие в очередь демонстрационные буферы.
Объявление
Swift
func flush()Objective C
- (void)flushОбсуждение
Поскольку не возможно определить, какие демонстрационные буферы декодировались, следующий кадр передал
enqueueSampleBuffer:должен быть кадр IDR (также известный как ключевой кадр или синхронизирующая выборка).Оператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в iOS 8.0 и позже.
См. также
-
Сообщает, что уровень для отбрасывания ожидания ставил в очередь демонстрационные буферы, и удалите любое в настоящее время выводимое на экран изображение.
Объявление
Swift
func flushAndRemoveImage()Objective C
- (void)flushAndRemoveImageОбсуждение
Не возможно определить, какие демонстрационные буферы декодировались, таким образом, следующий кадр передал
enqueueSampleBuffer:должен быть кадр IDR (также известный как ключевой кадр или синхронизирующая выборка).Оператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в iOS 8.0 и позже.
См. также
-
controlTimebaseСвойствоУправление уровня timebase, который управляет, как интерпретируются метки времени.
Объявление
Swift
var controlTimebase: CMTimebase!Objective C
@property(retain) CMTimebaseRef controlTimebaseОбсуждение
По умолчанию это свойство
NULL, когда метки времени интерпретируются согласно таймеру узла (mach_absolute_timeс надлежащим преобразованием масштаба времени; это совпадает с Базовой АнимациейCACurrentMediaTime). Без управления timebase, как только кадры ставятся в очередь, не возможно корректироваться точно, когда они выведены на экран.Если не -
NULLуправление timebase установлено, оно используется для интерпретации меток времени. Вы управляете синхронизацией дисплея кадра путем установки уровня и время управления timebase.При синхронизации видео с аудио необходимо использовать timebase, основной тактовый генератор которого является a
CMAudioDeviceClockдля надлежащего аудиоустройства для предотвращения смещения. Посмотрите Ссылку CMAudioDeviceClock для получения дополнительной информации.Оператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в iOS 8.0 и позже.
См. также
-
Отправляет демонстрационный буфер за дисплеем.
Объявление
Swift
func enqueueSampleBuffer(_sampleBuffer: CMSampleBuffer!)Objective C
- (void)enqueueSampleBuffer:(CMSampleBufferRef)sampleBufferПараметры
sampleBufferДемонстрационный буфер для отображения.
Обсуждение
Если
sampleBufferимеетkCMSampleAttachmentKey_DoNotDisplayприсоединяемый набор кkCFBooleanTrue, кадр будет декодироваться, но не выводиться на экран.Если
sampleBufferимеетkCMSampleAttachmentKey_DisplayImmediatelyприсоединяемый набор кkCFBooleanTrue, декодируемое изображение будет выведено на экран как можно скорее, заменяя все ранее ставившие в очередь изображения независимо от их меток времени.Иначе, декодируемое изображение будет выведено на экран в
sampleBufferвыходная метка времени представления, как интерпретируетсяcontrolTimebaseсвойство (илиmach_absolute_timeвременная шкала, если нет никакого управления timebase).Для планирования удаления предыдущих изображений в определенной метке времени ставьте в очередь демонстрационный буфер маркера, содержащий выборки, с
kCMSampleBufferAttachmentKey_EmptyMediaприсоединяемый набор кkCFBooleanTrue.Оператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в iOS 8.0 и позже.
-
videoGravityСвойствоСтроковое определение, как видео выведено на экран в границах rect демонстрационного буферного уровня дисплея.
Обсуждение
Строковые значения определяются в
Video Gravity. Значение по умолчаниюAVLayerVideoGravityResizeAspect.Оператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в iOS 8.0 и позже.
-
errorСвойствоЕсли состояние указывает отказ, возвращает ошибку. (только для чтения)
Объявление
Swift
var error: NSError! { get }Objective C
@property(nonatomic, readonly) NSError *errorОбсуждение
Значение этого свойства
NSErrorэто описывает то, что заставило уровень дисплея больше не быть в состоянии ставить в очередь демонстрационные буферы. Если состояние неAVQueuedSampleBufferRenderingStatusFailed, значение этого свойстваnil.Оператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в iOS 8.0 и позже.
-
statusСвойствоВозможность уровня дисплея, который будет использоваться для постановки в очередь демонстрационных буферов. (только для чтения)
Объявление
Swift
var status: AVQueuedSampleBufferRenderingStatus { get }Objective C
@property(nonatomic, readonly) AVQueuedSampleBufferRenderingStatus statusОбсуждение
Значение этого свойства
AVQueuedSampleBufferRenderingStatusэто указывает, может ли получатель использоваться для постановки в очередь демонстрационных буферов.Когда значение этого свойства
AVQueuedSampleBufferRenderingStatusFailed, получатель больше не может использоваться, и новый экземпляр должен быть создан в его месте. Когда это происходит, клиенты могут проверить значениеerrorсвойство для определения отказа.Это свойство является значением ключа, наблюдающим совместимый.
Оператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в iOS 8.0 и позже.
-
Константы, описывающие возможные значения
statusсвойство.Объявление
Swift
enum AVQueuedSampleBufferRenderingStatus : Int { case Unknown case Rendering case Failed }Objective C
enum { AVQueuedSampleBufferRenderingStatusUnknown, AVQueuedSampleBufferRenderingStatusRendering, AVQueuedSampleBufferRenderingStatusFailed }; typedef NSInteger AVQueuedSampleBufferRenderingStatus;Константы
-
UnknownAVQueuedSampleBufferRenderingStatusUnknownУказывает, что получатель находится в новом состоянии без любых демонстрационных буферов, ставивших в очередь на нем.
Доступный в iOS 8.0 и позже.
-
RenderingAVQueuedSampleBufferRenderingStatusRenderingУказывает, что по крайней мере один демонстрационный буфер ставился в очередь на получателе.
Доступный в iOS 8.0 и позже.
-
FailedAVQueuedSampleBufferRenderingStatusFailedТерминальное состояние, указывающее, что получатель больше не может представлять демонстрационные буферы из-за ошибки. Ошибка описана значением
errorсвойство.Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в iOS 8.0 и позже.
-
-
Постоянный, который описывает ключ для userInfo поля в
AVSampleBufferDisplayLayerFailedToDecodeNotificationуведомление.Объявление
Swift
let AVSampleBufferDisplayLayerFailedToDecodeNotificationErrorKey: StringObjective C
NSString *const AVSampleBufferDisplayLayerFailedToDecodeNotificationErrorKey;Константы
-
AVSampleBufferDisplayLayerFailedToDecodeNotification AVSampleBufferDisplayLayerFailedToDecodeNotificationОтправленный, когда буферному уровню дисплея не удалось декодировать.
Уведомление
userInfoсодержитNSErrorкак значениеAVSampleBufferDisplayLayerFailedToDecodeNotificationErrorKey.Оператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в iOS 8.0 и позже.
