Freigeben über


XAudio2-Stimmen

Es gibt drei Arten von XAudio2-Sprachobjekten: Quell-, Submix-und Mastering Stimmen. Quellstimmen werden auf vom Client bereitgestellten Audiodaten ausgeführt. Quell- und Submixstimden senden ihre Ausgabe an eine oder mehrere Submix- oder Masterstimden. Submix- und Masterstimmen mischen die Audiodaten von allen Stimmen, die sie füttern, und arbeiten mit dem Ergebnis. Masterstimden schreiben Audiodaten auf ein Audiogerät.

Von allen Stimmen ausgeführte Aktionen

Alle Stimmen führen die folgenden Aktionen in der Reihenfolge für die Audiodaten durch, die jedoch übertragen werden.

  1. Allgemeine Lautstärkeanpassung, die sich auf alle Audiokanäle auswirkt. Siehe IXAudio2Voice::SetVolume.
  2. Eine optionale clientspezifische Kette mit mindestens einem DSP-Effekt, z. B. dem integrierten Halleffekt oder einem Benutzereffekt, der von der IXAPO- Schnittstelle definiert wird. Siehe XAudio2-Audioeffekte.
  3. Anpassung des Ausgabevolumens pro Kanal. Siehe IXAudio2Voice::SetChannelVolumes.
  4. Separate Matrixmischung zu den einzelnen Zielstimden oder zum Audioausgabegerät für Masterstimden. Diese Mischung ändert bei Bedarf die Anzahl der Kanäle im Audio.

Quellstimmungen

Verwenden Sie Quellstimden, um Audiodaten an die XAudio2-Verarbeitungspipeline zu übermitteln. Sie sind die Einstiegspunkte in die XAudio2 Audio Graph. Sie müssen Sprachdaten an eine Masterstimme senden, um gehört zu werden, entweder direkt oder über Zwischen-Submixstimmen.

Neben den Aktionen, die von allen Stimmen ausgeführt werden, führen Quellstimmstimden die folgenden Aktionen aus.

  • Bei Bedarf wird zunächst ein Decoder ausgeführt, um codierte Quelldaten in pulse Code Modulation (PCM) zu konvertieren.
  • Eine SRC (Variable Rate Sample Rate Conversion) konvertiert die Quellaudiodaten der Stimme in die von den Zielstimme erwarteten Samplingrate, falls erforderlich, und unterstützt auch dynamische Neigungsänderungen.
  • Ein optionaler Zustandsvariablenfilter kann verwendet werden, um den Sound auf verschiedene Weise zu färben. Siehe IXAudio2Voice::SetFilterParameters.
  • Ein optionaler Filter kann auf die Sprachausgabe angewendet werden. Siehe IXAudio2Voice::SetOutputFilterParameters.

Submixstimmstimen

Eine Submixstimme wird hauptsächlich für Leistungsverbesserungen und Effektverarbeitungen verwendet. Datenpuffer können nicht direkt an Submixstimden übermittelt werden. Es wird nicht hörbar sein, es sei denn, Sie übermitteln es an eine Masterstimme. Sie können eine Submixstimme verwenden, um sicherzustellen, dass eine bestimmte Gruppe von Sprachdaten in dasselbe Format konvertiert wird und dass eine bestimmte Effektkette für das kollektive Ergebnis verarbeitet wird.

Zusätzlich zu den Aktionen, die von allen Stimmen ausgeführt werden, führen Submixstimden die folgenden Aktionen aus.

  • Ein SRC mit fester Rate wird bei Bedarf auf der Ausgabe der Stimme ausgeführt, um die Audiowiedergabe in die von den Zielstimme erwarteten Samplingrate zu konvertieren.
  • Ein optionaler Zustandsvariablenfilter kann verwendet werden, um den Sound auf verschiedene Weise zu färben. Siehe IXAudio2Voice::SetFilterParameters.
  • Ein optionaler Filter kann auf die Sprachausgabe angewendet werden. Siehe IXAudio2Voice::SetOutputFilterParameters.

Masterstimmungen

Verwenden Sie eine Masterstimme, um das Audioausgabegerät darzustellen. Sie können Keine Datenpuffer direkt an Masterstimmen übermitteln, aber daten, die an andere Arten von Stimmen übermittelt werden, müssen zu einer Masterstimme wechseln, um gehört zu werden.

Zusätzlich zu den Aktionen, die von allen Stimmen ausgeführt werden, führen Masterstimden die folgenden Aktionen aus.

  • Wenn Sie die Masterstimme mit einer expliziten InputSampleRate Wert erstellen, der vom Audiogerät nicht unterstützt wird, wird ein SRC mit fester Rate verwendet, um in die am nächsten vom Gerät unterstützte Abtastrate zu konvertieren.
  • Clip the final output audio, if it is required by the output device.

Stimmen

XAudio2-Programmierhandbuch

IXAudio2SourceVoice

IXAudio2SubmixVoice

IXAudio2MasteringVoice