Freigeben über


XAudio2 Audio Graph

Die Gruppe aller Stimmen mit ihren enthaltenen Effekten und ihren Verbindungen wird als Audioverarbeitungsdiagramm bezeichnet. Das Diagramm verwendet einen Satz von Audiostreams vom Client als Eingabe, verarbeitet sie und liefert das Endergebnis an ein Audiogerät. Alle Audioverarbeitungen erfolgen in einem separaten Thread mit einer Periodizität, die durch das Quantendiagramm definiert wird (derzeit 10 Millisekunden auf Microsoft Windows und 5 1/3 Millisekunden auf Xbox 360). Jeder Quanten millisekunden, der Thread reaktiviert und verteilt Quanten millisekunden von Audiodaten über das gesamte Diagramm. Ein Beispiel zum Erstellen eines einfachen Audiodiagramms finden Sie unter How to: Build a Basic Audio Processing Graph.

Ein einfaches Audiodiagramm:

eines einfachen Audiodiagramms

Der Client kann den Zustand des Diagramms während der Ausführung dynamisch steuern. Steuerungsaktionen können das Hinzufügen und Entfernen von Eingaben und Ausgaben, das Ändern der internen Effekte und Verbindungen, das Festlegen von Parametern für die Effekte, das Aktivieren und Deaktivieren von Teilen des Diagramms usw. umfassen. Ein Beispiel für eine dynamische Änderung eines Audiodiagramms finden Sie unter How to: Dynamically Add or Remove Voices From an Audio Graph.

Verarbeiten des Diagramms

Jeder Methodenaufruf, der sich auf ein Objekt im Diagramm auswirkt, wird als Auswirkung auf eine Änderung des Diagrammzustands betrachtet. Zu den Änderungen des Graph-Zustands gehören die folgenden:

  • Erstellen und Zerstören von Stimmen
  • Starten oder Beenden von Stimmen
  • Ändern der Ziele einer Stimme
  • Ändern von Effektketten
  • Aktivieren oder Deaktivieren von Effekten
  • Festlegen von Parametern für die Effekte oder auf den integrierten SRCs, Filtern, Volumes und Mixern

Alle Diagrammzustandsänderungen können kombiniert und als atome Transaktion ausgeführt werden. Diese Atomoperationen werden als Vorgangssätze bezeichnet. Sie werden in der übersicht über die XAudio2 Operation Sets erläutert.

Interne Datendarstellung

Audiodaten im XAudio2-Diagramm werden immer in 32-Bit-Gleitkomma-PCM-Form gespeichert und verarbeitet. Die Kanalanzahl und Die Samplerate können jedoch innerhalb des Diagramms variieren. Das Format, in dem eine bestimmte Stimme Audio verarbeitet, wird durch den Sprachtyp und die Parameter bestimmt, die zum Erstellen der Stimme verwendet werden.

Sprachtyp Parameter
IXAudio2SourceVoice Die Kanalanzahl und die Samplerate der Stimmen, an die die Quellstimme Audio sendet.
IXAudio2SubmixVoice und IXAudio2MasteringVoice Die argumente InputChannels und InputSampleRate, die zum Erstellen der Submix-/Masterstimme verwendet werden.

 

Formatkonvertierung

XAudio2 behandelt alle Samplerate oder Kanalkonvertierungen, die erforderlich sind, wenn Audio von einer Stimme zu einer anderen wechselt, mit den folgenden Einschränkungen:

  • Alle Zielstimme für eine bestimmte Stimme müssen mit derselben Samplingrate ausgeführt werden.
  • Effekte in einer Effektkette können die Kanalanzahl der Audiodaten ändern, jedoch nicht die Samplingrate
  • Die Anzahl der Ausgabekanal einer Effektkette muss mit der der Stimmen übereinstimmen, an die sie gesendet wird.
  • Es kann keine Änderung des dynamischen Diagramms vorgenommen werden, wodurch die oben genannten Regeln nicht geändert werden.

Auf der Eingabeseite können Quellstimms Daten in einem beliebigen gültigen PCM-Format oder in einem der komprimierten Formate lesen, die von XAudio2 unterstützt werden. Wenn die Eingabedaten komprimiert werden, wird sie zu Gleitkomma-PCM decodiert, bevor eine weitere Verarbeitung erfolgt.

Auf der Ausgabeseite können Masterstimden nur PCM-Daten erzeugen. Diese Daten entsprechen immer den oben beschriebenen Einschränkungen für die Eingabe von PCM-Daten.

Audiodiagramme

XAudio2-Programmierhandbuch

How to: Build a Basic Audio Processing Graph

Gewusst wie: Dynamisches Hinzufügen oder Entfernen von Stimmen aus einem Audiodiagramm-

How to: Use Submix Voices

Gewusst wie: Erstellen einer Effektkette