Compartir a través de


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

El método GetBufferSize recupera el tamaño (capacidad máxima) del búfer del punto de conexión.

Sintaxis

HRESULT GetBufferSize(
  [out] UINT32 *pNumBufferFrames
);

Parámetros

[out] pNumBufferFrames

Puntero a una variable UINT32 en la que el método escribe el número de fotogramas de audio que el búfer puede contener.

Valor devuelto

Si el método se realiza correctamente, devuelve S_OK. Si se produce un error, los posibles códigos de retorno incluyen, pero no están limitados a, los valores que se muestran en la tabla siguiente.

Código devuelto Descripción
AUDCLNT_E_NOT_INITIALIZED
La secuencia de audio no se ha inicializado correctamente.
AUDCLNT_E_DEVICE_INVALIDATED
El dispositivo de punto de conexión de audio se ha desconectado o el hardware de audio o los recursos de hardware asociados se han reconfigurado, deshabilitado, quitado o no están disponibles para su uso.
AUDCLNT_E_SERVICE_NOT_RUNNING
El servicio de audio de Windows no se está ejecutando.
E_POINTER
El parámetro pNumBufferFrames es NULL.

Comentarios

Este método requiere una inicialización previa de la interfaz IAudioClient . Todas las llamadas a este método producirán un error AUDCLNT_E_NOT_INITIALIZED hasta que el cliente inicialice la secuencia de audio llamando correctamente al método IAudioClient::Initialize .

Este método recupera la longitud del búfer de punto de conexión compartido entre la aplicación cliente y el motor de audio. La longitud se expresa como el número de fotogramas de audio que puede contener el búfer. El tamaño en bytes de una trama de audio se calcula como el número de canales de la secuencia multiplicado por el tamaño de muestra por canal. Por ejemplo, el tamaño del marco es de cuatro bytes para una secuencia estéreo (2 canales) con muestras de 16 bits.

El método IAudioClient::Initialize asigna el búfer. El cliente especifica la longitud del búfer en el valor del parámetro hnsBufferDuration que pasa al método Initialize . En el caso de los clientes de representación, la longitud del búfer determina la cantidad máxima de datos de representación que la aplicación puede escribir en el búfer del punto de conexión durante un solo paso de procesamiento. En el caso de los clientes de captura, la longitud del búfer determina la cantidad máxima de datos de captura que el motor de audio puede leer desde el búfer del punto de conexión durante un solo paso de procesamiento. El cliente siempre debe llamar a GetBufferSize después de llamar a Initialize para determinar el tamaño real del búfer asignado, que podría diferir del tamaño solicitado.

Los clientes de representación pueden usar este valor para calcular el tamaño de búfer de representación más grande que se puede solicitar desde IAudioRenderClient::GetBuffer durante cada paso de procesamiento.

Para obtener ejemplos de código que llaman al método GetBufferSize , consulte los temas siguientes:

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado audioclient.h

Consulte también

IAudioClient (interfaz)

IAudioClient::Initialize

IAudioRenderClient::GetBuffer