Compartilhar via


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

Obtém um buffer usado para fornecer os dados de áudio para o ISpatialAudioObject.

Sintaxe

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

Parâmetros

[out] buffer

O buffer no qual os dados de áudio são gravados.

[out] bufferLength

O comprimento do buffer em bytes. Esse comprimento será o valor retornado no parâmetro frameCountPerBuffer para ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects multiplicado pelo valor do campo nBlockAlign da estrutura WAVEFORMATEX passada no SpatialAudioObjectRenderStreamActivationParams
parâmetro para ISpatialAudioClient::ActivateSpatialAudioStream.

Retornar valor

Se o método for bem-sucedido, retornará S_OK. Se falhar, os códigos de retorno possíveis incluem, mas não se limitam a, os valores mostrados na tabela a seguir.

Código de retorno Descrição
SPTLAUDCLNT_E_OUT_OF_ORDER

ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects não foi chamado antes da chamada para GetBuffer. Esse método deve ser chamado antes da primeira vez que GetBuffer é chamado e após cada chamada subsequente para ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects.

SPTLAUDCLNT_E_RESOURCES_INVALIDATED

SetEndOfStream foi chamado explicitamente ou implicitamente em uma passagem de processamento de áudio anterior. SetEndOfStream será chamado implicitamente pelo sistema se GetBuffer não for chamado dentro de uma passagem de processamento de áudio (entre chamadas para ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects e ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects).

Comentários

A primeira vez que GetBuffer é chamado depois que o ISpatialAudioObject é ativado com uma chamada ISpatialAudioObjectRenderStream::ActivateSpatialAudioObject,
o tempo de vida do objeto de áudio espacial é iniciado.
Para manter o objeto de áudio espacial vivo depois disso, esse GetBuffer deve ser chamado em cada passagem de processamento (entre chamadas para ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects e ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects). Se GetBuffer não for chamado dentro de uma passagem de processamento de áudio, SetEndOfStream será chamado implicitamente no objeto de áudio para desativar e o objeto de áudio só poderá ser reutilizado após chamar Release no objeto e reativar o objeto chamando ActivateSpatialAudioObject novamente.

Os ponteiros recuperados por GetBuffer não devem ser usados após
ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects foi chamado.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho spatialaudioclient.h

Confira também

ISpatialAudioObject

ISpatialAudioObjectBase