Freigeben über


IXAudio2Voice::SetEffectParameters-Methode (xaudio2.h)

Legt Parameter für einen bestimmten Effekt in der Effektkette der Stimme fest.

Syntax

\\HRESULT SetEffectParameters(
  [in] UINT32     EffectIndex,
  [in] const void *pParameters,
  [in] UINT32     ParametersByteSize,
  [in] UINT32     OperationSet
);

Parameter

[in] EffectIndex

Nullbasierter Index eines Effekts innerhalb der Effektkette der Stimme.

[in] pParameters

Gibt die aktuellen Werte der effektspezifischen Parameter zurück.

[in] ParametersByteSize

Größe des pParameters-Arrays in Bytes.

[in] OperationSet

Identifiziert diesen Aufruf als Teil eines verzögerten Batches. Weitere Informationen finden Sie in der Übersicht über XAudio2-Vorgänge .

Rückgabewert

Gibt bei erfolgreicher Ausführung S_OK zurück. andernfalls ein Fehlercode. Beschreibungen von Fehlercodes finden Sie unter XAudio2-Fehlercodes .

Schlägt mit E_NOTIMPL fehl, wenn der Effekt keine generische Parametersteuerungsschnittstelle unterstützt.

Hinweise

Der verwendete spezifische Effekt bestimmt die gültige Größe und das Format des pParameters-Puffers . Der Aufruf schlägt fehl, wenn pParameters ungültig ist oder ParametersByteSize nicht genau die Größe aufweist, die der Effekt erwartet. Der Client muss darauf achten, den SetEffectParameters-Aufruf an den richtigen Effekt zu leiten. Wenn dieser Aufruf an einen anderen Effekt weitergeleitet wird, der die gleiche Parameterblockgröße akzeptiert, werden die Parameter unterschiedlich interpretiert. Dies kann zu unerwarteten Ergebnissen führen.

Der speicher, auf den pParameters verweist, darf nicht sofort freigegeben werden, da XAudio2 später darauf verweisen muss, wenn die Parameter tatsächlich auf den Effekt angewendet werden. Dies geschieht während des nächsten Audioverarbeitungsdurchlaufs, wenn das Argument OperationSetXAUDIO2_COMMIT_NOW ist. Andernfalls werden die Parameter später auf den Effekt angewendet, während des ersten Verarbeitungsdurchlaufs, nachdem die IXAudio2::CommitChanges-Funktion mit demselben OperationSet-Argument aufgerufen wurde.

SetEffectParameters wird sofort wirksam, wenn von einem XAudio2-Rückruf mit einem OperationSetXAUDIO2_COMMIT_NOW aufgerufen wird.

HinweisIXAudio2Voice::GetEffectParameters gibt immer die aktuellen Parameter des Effekts zurück. Diese stimmen jedoch möglicherweise nicht mit den Parametern überein, die durch den letzten Aufruf von IXAudio2Voice::SetEffectParameters festgelegt wurden. Die tatsächlichen Parameter werden nur geändert, wenn die Audio-Engine das nächste Mal nach dem IXAudio2Voice::SetEffectParameters-Aufruf ausgeführt wird (oder nach dem entsprechenden IXAudio2::CommitChanges-Aufruf , wenn IXAudio2Voice::SetEffectParameters mit einer verzögerten Vorgangs-ID aufgerufen wurde).
 

Plattformanforderungen

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); DirectX SDK (XAudio 2.7)

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile xaudio2.h

Weitere Informationen

So wird's gemacht: Erstellen einer Effektkette

IXAPOParameters::SetParameters

IXAudio2Voice

XAPO–Übersicht