структура KSAUDIO_POSITION (ksmedia.h)
Структура KSAUDIO_POSITION определяет текущие позиции курсоров воспроизведения и записи в звуковом буфере для звукового потока.
Синтаксис
typedef struct {
#if ...
ULONGLONG PlayOffset;
#if ...
ULONGLONG WriteOffset;
#else
DWORDLONG PlayOffset;
#endif
#else
DWORDLONG WriteOffset;
#endif
} KSAUDIO_POSITION, *PKSAUDIO_POSITION;
Члены
PlayOffset
Указывает текущую позицию воспроизведения в виде смещения в байтах.
WriteOffset
Указывает текущую позицию записи в виде смещения в байтах.
Комментарии
Эта структура используется для получения и задания значения данных для свойства KSPROPERTY_AUDIO_POSITION .
Для зациклованного буфера клиента (с типом потока KSINTERFACE_STANDARD_LOOPED_STREAMING) PlayOffset и WriteOffset — это смещения байтов в буфере клиента. Когда любое смещение достигает конца буфера, оно переносится в начало буфера. Следовательно, ни один из смещений никогда не превышает размер буфера.
Для непрямого буфера клиента (с типом потока KSINTERFACE_STANDARD_STREAMING) PlayOffset и WriteOffset не являются смещениями в один физический буфер, выделенный драйвером или клиентом. Вместо этого эти смещения являются относительными по потоку и могут рассматриваться как смещения в идеализованный буфер, который содержит весь поток и является непрерывным от начала до конца. Все внутренние смещения, указывающие на фактические физические буферы, содержащие данные, должны храниться отдельно.
Во время воспроизведения значения PlayOffset и WriteOffset интерпретируются следующим образом:
- PlayOffset — это смещение последнего байта в буфере, который играл. PlayOffset + 1 — это смещение следующего байта, который будет играть.
- WriteOffset — это смещение последнего байта в буфере воспроизведения.
Во время записи значения PlayOffset и WriteOffset интерпретируются следующим образом:
- PlayOffset — это смещение последнего байта в буфере, который был захвачен. PlayOffset + 1 — это смещение следующего байта, который будет записан.
- WriteOffset — это смещение последнего байта в буфере записи.
Пространство между PlayOffset и WriteOffset считается отключенным для клиента, так как оно представляет часть буфера клиента, которая уже была отправлена драйверу и может по-прежнему использоваться драйвером.
Дополнительные сведения см. в разделе Audio Position Property.
Требования
Требование | Значение |
---|---|
Заголовок | ksmedia.h (включая Ksmedia.h) |
См. также раздел
KSINTERFACE_STANDARD_LOOPED_STREAMING