Método ISpatialAudioObjectBase::GetBuffer (spatialaudioclient.h)

Obtiene un búfer que se usa para proporcionar los datos de audio para ISpatialAudioObject.

Sintaxis

HRESULT GetBuffer(
  [out] BYTE   **buffer,
  [out] UINT32 *bufferLength
);

Parámetros

[out] buffer

Búfer en el que se escriben los datos de audio.

[out] bufferLength

Longitud del búfer en bytes. Esta longitud será el valor devuelto en el parámetro frameCountPerBuffer a ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects multiplicado por el valor del campo nBlockAlign de la estructura WAVEFORMATEX pasada en spatialAudioObjectRenderStreamActivationParams.
parámetro para ISpatialAudioClient::ActivateSpatialAudioStream.

Valor devuelto

Si el método se realiza correctamente, devuelve S_OK. Si se produce un error, los códigos de retorno posibles incluyen, entre otros, los valores que se muestran en la tabla siguiente.

Código devuelto Descripción
SPTLAUDCLNT_E_OUT_OF_ORDER

No se llamó a ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects antes de la llamada a GetBuffer. Se debe llamar a este método antes de llamar a GetBuffer y después de cada llamada posterior a ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects.

SPTLAUDCLNT_E_RESOURCES_INVALIDATED

Se llamó a SetEndOfStream de forma explícita o implícita en un paso de procesamiento de audio anterior. El sistema llama implícitamente a SetEndOfStream si no se llama a GetBuffer dentro de un paso de procesamiento de audio (entre llamadas a ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects e ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects).

Comentarios

La primera vez que se llama a GetBuffer después de activar ISpatialAudioObject con una llamada ISpatialAudioObjectRenderStream::ActivateSpatialAudioObject,
se inicia la duración del objeto de audio espacial.
Para mantener activo el objeto de audio espacial después de eso, se debe llamar a este GetBuffer en cada paso de procesamiento (entre llamadas a ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects e ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects). Si no se llama a GetBuffer dentro de un paso de procesamiento de audio, se llama implícitamente a SetEndOfStream en el objeto de audio para desactivar y el objeto de audio solo se puede reutilizar después de llamar a Release en el objeto y, a continuación, reactivar el objeto llamando a ActivateSpatialAudioObject de nuevo.

Los punteros recuperados por GetBuffer no deben usarse después de
Se ha llamado a ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado spatialaudioclient.h

Consulte también

ISpatialAudioObject

ISpatialAudioObjectBase