структура XAUDIO2_VOICE_STATE (xaudio2.h)

Возвращает текущее состояние голоса и данные о положении курсора.

Синтаксис

typedef struct XAUDIO2_VOICE_STATE {
  void   *pCurrentBufferContext;
  UINT32 BuffersQueued;
  UINT64 SamplesPlayed;
} XAUDIO2_VOICE_STATE;

Члены

pCurrentBufferContext

Указатель на контекст буфера, указанный в XAUDIO2_BUFFER , который обрабатывается в данный момент, или, если голос в данный момент остановлен, на следующий буфер, который должен быть обработан. pCurrentBufferContext имеет значение NULL, если в очереди нет буферов.

BuffersQueued

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

SamplesPlayed

Общее количество выборок, обработанных этим голосом с момента его последнего запуска или с момента окончания последнего аудиопотока (как отмечено флагом XAUDIO2_END_OF_STREAM). Это общее число включает в себя выборки, которые были воспроизведены несколько раз из-за циклов. Теоретически, если записывается весь звук, излучаемый голосом до этого времени, этот параметр будет составлять длину звукового потока в примерах. Если вы укажете XAUDIO2_VOICE_NOSAMPLESPLAYED при вызове IXAudio2SourceVoice::GetState, этот элемент не будет вычисляться, а его значение не указано при возврате из IXAudio2SourceVoice::GetState. Выполнение IXAudio2SourceVoice::GetState занимает около одной трети времени при указании XAUDIO2_VOICE_NOSAMPLESPLAYED.

Комментарии

Для всех закодированных форматов, включая форматы постоянной скорости (CBR), таких как адаптивная дифференциальная импульсная модуляция (ADPCM), SamplesPlayed выражается в виде декодированных выборок. Для форматов импульсной модуляции кода (PCM) SamplesPlayed выражается в виде входных или выходных выборок. Существует сопоставление "один к одному" из входных и выходных данных для форматов PCM.

Если клиенту необходимо получить коррелированные позиции нескольких голосов, то есть точно знать, какой образец конкретного голоса воспроизводит при воспроизведении указанной выборки другого голоса, он должен выполнять вызовы IXAudio2SourceVoice::GetState в обратном вызове обработчика XAudio2. Это гарантирует, что ни один из голосов не будет продвигаться во время звонков.

Требования к платформе

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); Пакет SDK для DirectX (XAudio 2.7)

Требования

   
Верхняя часть xaudio2.h

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

Структуры