Freigeben über


IXAudio2::CreateSubmixVoice-Methode (xaudio2.h)

Erstellt und konfiguriert eine Submixstimme.

Syntax

HRESULT CreateSubmixVoice(
  [out]          IXAudio2SubmixVoice        **ppSubmixVoice,
  [in]           UINT32                     InputChannels,
  [in]           UINT32                     InputSampleRate,
  [in]           UINT32                     Flags,
  [in]           UINT32                     ProcessingStage,
  [in, optional] const XAUDIO2_VOICE_SENDS  *pSendList,
  [in, optional] const XAUDIO2_EFFECT_CHAIN *pEffectChain
);

Parameter

[out] ppSubmixVoice

Gibt bei Erfolg einen Zeiger auf das neue IXAudio2SubmixVoice-Objekt zurück.

[in] InputChannels

Anzahl der Kanäle in den Audioeingabedaten der Submixstimme. InputChannels muss kleiner oder gleich XAUDIO2_MAX_AUDIO_CHANNELS sein.

[in] InputSampleRate

Abtastrate der Audioeingabedaten der Submixstimme. Diese Rate muss ein Vielfaches von XAUDIO2_QUANTUM_DENOMINATOR sein. InputSampleRate muss zwischen XAUDIO2_MIN_SAMPLE_RATE und XAUDIO2_MAX_SAMPLE_RATE sein.

[in] Flags

Flags, die das Verhalten der Submixstimme angeben. Dies kann 0 oder folgendes sein:

Wert BESCHREIBUNG
XAUDIO2_VOICE_USEFILTER Der Filtereffekt sollte für diese Stimme verfügbar sein.

[in] ProcessingStage

Eine beliebige Zahl, die angibt, wann diese Stimme in Bezug auf andere Submixstimme verarbeitet wird, wenn die XAudio2-Engine andere Submixstimme ausführt. Die Stimme wird nach allen anderen Stimmen verarbeitet, die einen kleineren ProcessingStage-Wert enthalten, und vor allen anderen Stimmen, die einen größeren ProcessingStage-Wert enthalten. Stimmen, die denselben ProcessingStage-Wert enthalten, werden in beliebiger Reihenfolge verarbeitet. Eine Submixstimme kann nicht an eine andere Submixstimme mit einem niedrigeren oder gleichen ProcessingStage-Wert senden. Dadurch wird verhindert, dass Audio aufgrund eines Submixzyklus verloren geht.

[in, optional] pSendList

Zeiger auf eine Liste von XAUDIO2_VOICE_SENDS Strukturen, die den Satz der Zielstimme für die Submixstimme beschreiben. Wenn pSendList NULL ist, wird in der Sendeliste standardmäßig eine einzelne Ausgabe an die erste erstellte Masterstimme ausgegeben.

[in, optional] pEffectChain

Zeiger auf eine Liste von XAUDIO2_EFFECT_CHAIN Strukturen, die eine Effektkette beschreiben, die in der Submixstimme verwendet werden soll.

Rückgabewert

Gibt bei erfolgreicher Ausführung S_OK zurück. andernfalls ein Fehlercode.

Beschreibungen von XAudio2-spezifischen Fehlercodes finden Sie unter XAudio2-Fehlercodes.

Hinweise

Submix-Stimmen erhalten die Ausgabe einer oder mehrerer Quell- oder Submix-Stimmen. Sie verarbeiten die Ausgabe und senden sie dann an eine andere Submixstimme oder an eine Masterstimme.

Eine Submixstimme führt eine Konvertierung der Abtastrate von der Eingabe-Abtastrate in die Eingaberate ihrer Ausgabestimme in pSendList durch. Wenn Sie mehrere Sprachsendungen angeben, müssen alle über die gleiche Abtastrate verfügen.

Sie können keine Quell- oder Submixstimme erstellen, bis eine Masterstimme vorhanden ist, und Sie können eine Masterstimme nicht zerstören, wenn noch Quell- oder Submixstimme vorhanden ist.

Bei der ersten Erstellung befinden sich Submix-Stimmen im Startzustand.

XAudio2 verwendet einen internen Speicherpooler für Stimmen im gleichen Format. Dies bedeutet, dass die Speicherbelegung für Stimmen seltener auftritt, da mehr Stimmen erstellt und dann zerstört werden. Um Just-in-Time-Zuordnungen zu minimieren, kann ein Titel die erwartete maximale Anzahl von Stimmen erstellen, die im Voraus benötigt werden, und diese dann nach Bedarf löschen. Stimmen werden dann aus dem XAudio2-Pool wiederverwendet. Der Speicherpool ist an eine XAudio2-Engine instance gebunden. Sie können den gesamten Von einem instance der XAudio2-Engine verwendeten Arbeitsspeicher wieder freigeben, indem Sie das XAudio2-Objekt zerstören und es bei Bedarf neu erstellen (erzwingen, dass der Arbeitsspeicherpool über eine Vorbelegung vergrößert werden muss, muss bei Bedarf erneut angewendet werden).

Es ist ungültig, CreateSubmixVoice innerhalb eines Rückrufs aufzurufen (also IXAudio2EngineCallback oder IXAudio2VoiceCallback). Wenn Sie CreateSubmixVoice innerhalb eines Rückrufs aufrufen, wird XAUDIO2_E_INVALID_CALL zurückgegeben.

Die XAUDIO2_EFFECT_CHAIN , die als pEffectChain-Argument übergeben wird, und alle darin enthaltenen XAUDIO2_EFFECT_DESCRIPTOR Informationen werden nach dem erfolgreichen Abschluss von CreateSubmixVoice nicht mehr benötigt und können unmittelbar nach dem Aufruf von CreateSubmixVoice gelöscht werden.

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

IXAudio2

XAudio2-Abtastratekonvertierungen