Поделиться через


структура LOOPEDSTREAMING_POSITION_EVENT_DATA (ksmedia.h)

Структура LOOPEDSTREAMING_POSITION_EVENT_DATA описывает событие положения в циклизованном буфере.

Синтаксис

typedef struct {
  KSEVENTDATA KsEventData;
#if ...
  ULONGLONG   Position;
#else
  DWORDLONG   Position;
#endif
} LOOPEDSTREAMING_POSITION_EVENT_DATA, *PLOOPEDSTREAMING_POSITION_EVENT_DATA;

Члены

KsEventData

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

Position

Задает позицию буфера в виде смещения байтов от начала циклического буфера. Если размер буфера равен n байтов, элемент Position должен содержать значение в диапазоне от 0 до n–1.

Комментарии

Событие KSEVENT_LOOPEDSTREAMING_POSITION использует структуру LOOPEDSTREAMING_POSITION_EVENT_DATA. События этого типа происходят только в циклизированных буферах. Циклизированный буфер — это буфер данных для аудиопотока типа KSINTERFACE_STANDARD_LOOPED_STREAMING.

Драйвер (обычно системный компонент), создающий событие, сравнивает смещение байтов в элементе Position с курсором воспроизведения (в потоке отрисовки) или курсором записи (в потоке захвата). Событие положения возникает, когда курсор воспроизведения или записи проходит через указанную позицию.

Когда курсор воспроизведения или записи достигает конца зацикливаемого буфера, курсор перемещается в начало буфера, что соответствует смещению в байтах 0.

Дополнительные сведения о циклизуемых буферах, позициях буфера, а также о воспроизведении и записи курсоров см. в разделе Audio Position Property.

Требования

Требование Значение
Заголовок ksmedia.h (включая Ksmedia.h)

См. также раздел

KSEVENTDATA

KSEVENTSET_LoopedStreaming

KSEVENT_LOOPEDSTREAMING_POSITION

KSINTERFACE_STANDARD_LOOPED_STREAMING