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 |
---|---|
|
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. |
|
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 |