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 |