Partager via


XAUDIO2_VOICE_STATE structure (xaudio2.h)

Retourne l’état actuel de la voix et les données de position du curseur.

Syntaxe

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

Membres

pCurrentBufferContext

Pointeur vers un contexte de mémoire tampon fourni dans le XAUDIO2_BUFFER qui est actuellement traité, ou, si la voix est actuellement arrêtée, vers la mémoire tampon suivante à traiter. pCurrentBufferContext a la valeur NULL s’il n’y a pas de mémoire tampon dans la file d’attente.

BuffersQueued

Nombre de mémoires tampons audio actuellement mises en file d’attente sur la voix, y compris celle qui est traitée actuellement.

SamplesPlayed

Nombre total d’échantillons traités par cette voix depuis son dernier démarrage ou depuis la fin du dernier flux audio (marqué avec l’indicateur XAUDIO2_END_OF_STREAM). Ce total inclut les échantillons lus plusieurs fois en raison d’un bouclage. Théoriquement, si tout l’audio émis par la voix jusqu’à ce temps est capturé, ce paramètre correspond à la longueur du flux audio dans les échantillons. Si vous spécifiez XAUDIO2_VOICE_NOSAMPLESPLAYED lorsque vous appelez IXAudio2SourceVoice::GetState, ce membre n’est pas calculé et sa valeur n’est pas spécifiée au retour d’IXAudio2SourceVoice::GetState. IXAudio2SourceVoice::GetState prend environ un tiers de temps lorsque vous spécifiez XAUDIO2_VOICE_NOSAMPLESPLAYED.

Remarques

Pour tous les formats encodés, y compris les formats À débit binaire constant (CBR), tels que la modulation de code d’impulsion différentielle adaptative (ADPCM), SamplesPlayed est exprimé en termes d’exemples décodés. Pour les formats PCM (Pulse Code Modulation), SamplesPlayed est exprimé en termes d’exemples d’entrée ou de sortie. Il existe un mappage un-à-un de l’entrée vers la sortie pour les formats PCM.

Si un client doit obtenir les positions corrélées de plusieurs voix, c’est-à-dire pour savoir exactement quel échantillon d’une voix particulière est lu lorsqu’un échantillon spécifié d’une autre voix est en cours de lecture, il doit effectuer les appels IXAudio2SourceVoice::GetState dans un rappel du moteur XAudio2. Cela garantit qu’aucune voix n’avance pendant que les appels sont effectués.

Configuration requise pour la plateforme

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8) ; Kit de développement logiciel (SDK) DirectX (XAudio 2.7)

Spécifications

   
En-tête xaudio2.h

Voir aussi

Structures