estrutura XAUDIO2_VOICE_STATE (xaudio2.h)
Retorna o estado atual da voz e os dados de posição do cursor.
Sintaxe
typedef struct XAUDIO2_VOICE_STATE {
void *pCurrentBufferContext;
UINT32 BuffersQueued;
UINT64 SamplesPlayed;
} XAUDIO2_VOICE_STATE;
Membros
pCurrentBufferContext
Ponteiro para um contexto de buffer fornecido no XAUDIO2_BUFFER que é processado atualmente ou, se a voz for interrompida no momento, para o próximo buffer que deve ser processado. pCurrentBufferContext será NULL se não houver buffers na fila.
BuffersQueued
Número de buffers de áudio atualmente enfileirados na voz, incluindo aquele que é processado atualmente.
SamplesPlayed
Número total de amostras processadas por essa voz desde que ela foi iniciada pela última vez ou desde que o último fluxo de áudio terminou (como marcado com o sinalizador XAUDIO2_END_OF_STREAM). Esse total inclui exemplos reproduzidos várias vezes devido a looping. Teoricamente, se todo o áudio emitido pela voz até esse momento for capturado, esse parâmetro será o comprimento do fluxo de áudio em amostras. Se você especificar XAUDIO2_VOICE_NOSAMPLESPLAYED ao chamar IXAudio2SourceVoice::GetState, esse membro não será calculado e seu valor não será especificado no retorno de IXAudio2SourceVoice::GetState. IXAudio2SourceVoice::GetState leva cerca de um terço do tempo necessário para ser concluído quando você especifica XAUDIO2_VOICE_NOSAMPLESPLAYED.
Comentários
Para todos os formatos codificados, incluindo formatos CBR (taxa de bits constantes), como ADPCM (modulação de código de pulso diferencial adaptável), SamplesPlayed é expresso em termos de amostras decodificadas. Para formatos pcm (modulação de código de pulso), SamplesPlayed é expresso em termos de amostras de entrada ou saída. Há um mapeamento um-para-um da entrada para a saída para formatos PCM.
Se um cliente precisar obter as posições correlacionadas de várias vozes, ou seja, para saber exatamente qual amostra de uma voz específica está sendo reproduzida quando um exemplo especificado de outra voz está sendo reproduzido, ele deve fazer as chamadas IXAudio2SourceVoice::GetState em um retorno de chamada do mecanismo XAudio2. Isso garante que nenhuma das vozes avance enquanto as chamadas são feitas.
Requisitos de plataforma
Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); SDK do DirectX (XAudio 2.7)Requisitos
Cabeçalho | xaudio2.h |