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