Partager via


Méthode IAudioClient ::GetBufferSize (audioclient.h)

La méthode GetBufferSize récupère la taille (capacité maximale) de la mémoire tampon du point de terminaison.

Syntaxe

HRESULT GetBufferSize(
  [out] UINT32 *pNumBufferFrames
);

Paramètres

[out] pNumBufferFrames

Pointeur vers une variable UINT32 dans laquelle la méthode écrit le nombre d’images audio que la mémoire tampon peut contenir.

Valeur retournée

Si la méthode réussit, retourne S_OK. En cas d’échec, les codes de retour possibles incluent, sans s’y limiter, les valeurs indiquées dans le tableau suivant.

Code de retour Description
AUDCLNT_E_NOT_INITIALIZED
Le flux audio n’a pas été initialisé avec succès.
AUDCLNT_E_DEVICE_INVALIDATED
Le périphérique de point de terminaison audio a été débranché, ou le matériel audio ou les ressources matérielles associées ont été reconfigurés, désactivés, supprimés ou autrement indisponibles.
AUDCLNT_E_SERVICE_NOT_RUNNING
Le service audio Windows n’est pas en cours d’exécution.
E_POINTER
Le paramètre pNumBufferFrames a lavaleur NULL.

Remarques

Cette méthode nécessite une initialisation préalable de l’interface IAudioClient . Tous les appels à cette méthode échouent avec l’erreur AUDCLNT_E_NOT_INITIALIZED jusqu’à ce que le client initialise le flux audio en appelant correctement la méthode IAudioClient ::Initialize .

Cette méthode récupère la longueur de la mémoire tampon du point de terminaison partagée entre l’application cliente et le moteur audio. La longueur est exprimée en tant que nombre d’images audio que la mémoire tampon peut contenir. La taille en octets d’une image audio est calculée comme le nombre de canaux dans le flux multiplié par la taille de l’exemple par canal. Par exemple, la taille d’image est de quatre octets pour un flux stéréo (2 canaux) avec des exemples 16 bits.

La méthode IAudioClient ::Initialize alloue la mémoire tampon. Le client spécifie la longueur de la mémoire tampon dans la valeur du paramètre hnsBufferDuration qu’il transmet à la méthode Initialize . Pour les clients de rendu, la longueur de la mémoire tampon détermine la quantité maximale de données de rendu que l’application peut écrire dans la mémoire tampon du point de terminaison pendant une seule passe de traitement. Pour les clients de capture, la longueur de la mémoire tampon détermine la quantité maximale de données de capture que le moteur audio peut lire à partir de la mémoire tampon du point de terminaison pendant une seule passe de traitement. Le client doit toujours appeler GetBufferSize après avoir appelé Initialize pour déterminer la taille réelle de la mémoire tampon allouée, qui peut différer de la taille demandée.

Les clients de rendu peuvent utiliser cette valeur pour calculer la plus grande taille de mémoire tampon de rendu qui peut être demandée à IAudioRenderClient ::GetBuffer lors de chaque passage de traitement.

Pour obtenir des exemples de code qui appellent la méthode GetBufferSize , consultez les rubriques suivantes :

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête audioclient.h

Voir aussi

IAudioClient Interface

IAudioClient ::Initialize

IAudioRenderClient ::GetBuffer