Delen via


XAudio2 Audio Graph

De set van alle stemmen, met hun ingesloten effecten en hun verbindingen, wordt de audioverwerkingsgrafiek genoemd. De grafiek neemt een set audiostreams van de client als invoer, verwerkt ze en levert het uiteindelijke resultaat aan een audioapparaat. Alle audioverwerking vindt plaats in een afzonderlijke thread met een periodiciteit die is gedefinieerd door het kwantum van de grafiek (momenteel 10 milliseconden in Microsoft Windows en 5 1/3 milliseconden op Xbox 360). Elke kwantum milliseconden, de thread ontwaakt en verspreidt kwantum milliseconden van audiogegevens via de hele grafiek. Zie Procedure voor een voorbeeld van het bouwen van een eenvoudige audiografiek: Een basic audioverwerkingsgrafiek bouwen.

Een eenvoudige audiografiek:

een eenvoudige audiografiek

De client kan de status van de grafiek dynamisch beheren terwijl deze wordt uitgevoerd. Controleacties kunnen bestaan uit het toevoegen en verwijderen van invoer en uitvoer, het wijzigen van de interne effecten en verbindingen, het instellen van parameters voor de effecten, het in- en uitschakelen van delen van de grafiek, enzovoort. Zie How to: Dynamically Add or Remove Voices From an Audio Graphvoor een voorbeeld van het dynamisch wijzigen van een audiografiek.

De grafiek verwerken

Elke methode-aanroep die van invloed is op een object in de grafiek, wordt beschouwd als een wijziging in de grafiekstatus. Wijzigingen in de grafiekstatus zijn onder andere:

  • Stemmen maken en vernietigen
  • Stemmen starten of stoppen
  • De bestemmingen van een stem wijzigen
  • Effectketens wijzigen
  • Effecten in- of uitschakelen
  • Parameters instellen voor de effecten of op de ingebouwde SRC's, filters, volumes en mixers

Elke set grafiekstatuswijzigingen kan worden gecombineerd en uitgevoerd als een atomische transactie. Deze atomische bewerkingen worden bewerkingssets genoemd. Ze worden besproken in het overzicht van XAudio2-bewerkingssets.

Interne gegevensweergave

Audiogegevens in de XAudio2-grafiek worden altijd opgeslagen en verwerkt in 32-bits PCM-vorm met drijvende komma. Het aantal kanalen en de samplefrequentie kunnen echter variƫren binnen de grafiek. De indeling waarin een bepaalde spraak audio verwerkt, wordt bepaald door het spraaktype en de parameters die worden gebruikt om de stem te maken.

Spraaktype Parameters
IXAudio2SourceVoice- Het aantal kanalen en de samplefrequentie van de stemmen waarnaar de bronstem audio verzendt.
IXAudio2SubmixVoice en IXAudio2MasteringVoice De InputChannels en InputSampleRate argumenten die worden gebruikt om de submix-/masteringstem te maken.

 

Indelingsconversie

XAudio2 verwerkt eventuele samplefrequenties of kanaalconversies die vereist zijn als audio van de ene stem naar de andere gaat, met de volgende beperkingen:

  • Alle doelstemmen voor een bepaalde stem moeten met dezelfde samplefrequentie worden uitgevoerd
  • Effecten in een effectketen kunnen het aantal kanalen van de audio wijzigen, maar niet de samplefrequentie
  • Het aantal uitvoerkanalen van een effectketen moet overeenkomen met die van de stemmen die worden verzonden
  • Er kan geen dynamische grafiekwijziging worden aangebracht waardoor de bovenstaande regels worden verbroken

Aan de invoerzijde kunnen bronstemmen gegevens lezen in elke geldige PCM-indeling of in een van de gecomprimeerde indelingen die worden ondersteund door XAudio2. Als de invoergegevens worden gecomprimeerd, worden deze gedecodeerd naar PCM met drijvende komma voordat verdere verwerking wordt uitgevoerd.

Aan de uitvoerzijde kunnen masteringstemmen alleen PCM-gegevens produceren. Deze gegevens voldoen altijd aan dezelfde beperkingen die hierboven worden beschreven voor het invoeren van PCM-gegevens.

audiografieken

XAudio2 Programming Guide

Procedure: Een eenvoudige audioverwerkingsgrafiek bouwen

Instructies: Stemmen dynamisch toevoegen aan of verwijderen uit een audiografiek

Instructies: Submix-stemmen gebruiken

Procedure: Een effectketen maken