ISpatialAudioObjectBase::GetBuffer-Methode (spatialaudioclient.h)

Ruft einen Puffer ab, der zum Bereitstellen der Audiodaten für das ISpatialAudioObject verwendet wird.

Syntax

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

Parameter

[out] buffer

Der Puffer, in den Audiodaten geschrieben werden.

[out] bufferLength

Die Länge des Puffers in Bytes. Diese Länge ist der Wert, der im frameCountPerBuffer-Parameter an ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects zurückgegeben wird, multipliziert mit dem Wert des Felds nBlockAlign der WAVEFORMATEX-Struktur, die in SpatialAudioObjectRenderStreamActivationParams übergeben wird.
parameter to ISpatialAudioClient::ActivateSpatialAudioStream.

Rückgabewert

Wenn die Methode erfolgreich ist, wird S_OK zurückgegeben. Wenn ein Fehler auftritt, umfassen mögliche Rückgabecodes die in der folgenden Tabelle gezeigten Werte, sind jedoch nicht darauf beschränkt.

Rückgabecode Beschreibung
SPTLAUDCLNT_E_OUT_OF_ORDER

ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects wurde vor dem Aufruf von GetBuffer nicht aufgerufen. Diese Methode muss vor dem ersten Aufruf von GetBuffer und nach jedem nachfolgenden Aufruf von ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects aufgerufen werden.

SPTLAUDCLNT_E_RESOURCES_INVALIDATED

SetEndOfStream wurde in einem vorherigen Audioverarbeitungsdurchlauf entweder explizit oder implizit aufgerufen. SetEndOfStream wird implizit vom System aufgerufen, wenn GetBuffer nicht innerhalb eines Audioverarbeitungsdurchlaufs (zwischen Aufrufen von ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects und ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects) aufgerufen wird.

Hinweise

Wenn GetBuffer zum ersten Mal aufgerufen wird, nachdem ISpatialAudioObject mit einem Aufruf von ISpatialAudioObjectRenderStream::ActivateSpatialAudioObject aktiviert wurde,
Die Lebensdauer des räumlichen Audioobjekts beginnt.
Damit das räumliche Audioobjekt danach erhalten bleibt, muss dieser GetBuffer bei jedem Verarbeitungsdurchlauf (zwischen Aufrufen von ISpatialAudioObjectRenderStream::BeginUpdatingAudioObjects und ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects) aufgerufen werden. Wenn GetBuffer nicht innerhalb eines Audioverarbeitungsdurchlaufs aufgerufen wird, wird SetEndOfStream implizit für das zu deaktivierende Audioobjekt aufgerufen, und das Audioobjekt kann nur wiederverwendet werden , nachdem Release für das Objekt aufgerufen wurde und das Objekt dann durch erneutes Aufrufen von ActivateSpatialAudioObject reaktiviert wird.

Die von GetBuffer abgerufenen Zeiger sollten nach nicht verwendet werden.
ISpatialAudioObjectRenderStream::EndUpdatingAudioObjects wurde aufgerufen.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile spatialaudioclient.h

Weitere Informationen

ISpatialAudioObject

ISpatialAudioObjectBase