Metodo ISpatialAudioObjectBase::GetBuffer (spatialaudioclient.h)

Ottiene un buffer usato per fornire i dati audio per ISpatialAudioObject.

Sintassi

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

Parametri

[out] buffer

Buffer in cui vengono scritti i dati audio.

[out] bufferLength

Lunghezza del buffer in byte. Questa lunghezza sarà il valore restituito nel parametro frameCountPerBuffer a ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects moltiplicato per il valore del campo nBlockAlign della struttura WAVEFORMATEX passata nell'oggetto SpatialAudioObjectRenderStreamActivationParams
parametro su ISpatialAudioClient::ActivateSpatialAudioStream.

Valore restituito

Se il metodo ha esito positivo, viene restituito S_OK. Se ha esito negativo, i codici restituiti possibili includono, ma non sono limitati a, i valori visualizzati nella tabella seguente.

Codice restituito Descrizione
SPTLAUDCLNT_E_OUT_OF_ORDER

ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects non è stato chiamato prima della chiamata a GetBuffer. Questo metodo deve essere chiamato prima della prima chiamata a GetBuffer e dopo ogni chiamata successiva a ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects.

SPTLAUDCLNT_E_RESOURCES_INVALIDATED

SetEndOfStream è stato chiamato in modo esplicito o implicito in un passaggio di elaborazione audio precedente. SetEndOfStream viene chiamato in modo implicito dal sistema se GetBuffer non viene chiamato all'interno di un passaggio di elaborazione audio (tra le chiamate a ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects e ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects).

Commenti

La prima volta che GetBuffer viene chiamato dopo l'attivazione di ISpatialAudioObject con una chiamata ISpatialAudioObjectRenderStream::ActivateSpatialAudioObject,
la durata dell'oggetto audio spaziale inizia.
Per mantenere attivo l'oggetto audio spaziale, questo getBuffer deve essere chiamato in ogni passaggio di elaborazione (tra chiamate a ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects e ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects). Se GetBuffer non viene chiamato all'interno di un passaggio di elaborazione audio, SetEndOfStream viene chiamato in modo implicito sull'oggetto audio per disattivare e l'oggetto audio può essere riutilizzato solo dopo aver chiamato Release sull'oggetto e quindi riattivare l'oggetto chiamando di nuovo ActivateSpatialAudioObject .

I puntatori recuperati da GetBuffer non devono essere usati dopo
È stato chiamato ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione spatialaudioclient.h

Vedi anche

ISpatialAudioObject

ISpatialAudioObjectBase