Sdílet prostřednictvím


Zvukový graf XAudio2

Sada všech hlasů s jejich obsaženými efekty a jejich propojeními se označuje jako graf zpracování zvuku. Graf přebírá sadu zvukových streamů z klienta jako vstup, zpracovává je a doručuje konečný výsledek do zvukového zařízení. Veškeré zpracování zvuku probíhá v samostatném vlákně s periodikou definovanou kvantovým grafem (aktuálně 10 milisekund v Microsoft Windows a 5 1/3 milisekund na Xboxu 360). Každé kvantové milisekundy se vlákno probudí a rozptýlí kvantové milisekundy zvukových dat v celém grafu. Příklad vytvoření základního zvukového grafu najdete v tématu Postupy: Sestavení základního grafu zpracování zvuku.

Jednoduchý zvukový graf:

jednoduchý zvukový graf

Klient může dynamicky řídit stav grafu během běhu. Mezi řídicí akce může patřit přidání a odebrání vstupů a výstupů, změna vnitřních efektů a propojení, nastavení parametrů na efekty, povolení a zakázání částí grafu atd. Příklad dynamické změny zvukového grafu najdete v tématu Postupy: Dynamické přidávání nebo odebírání hlasů ze zvukového grafu.

Zpracování grafu

Jakékoli volání metody, které ovlivňuje jakýkoli objekt v grafu, se považuje za účinek změny stavu grafu. Změny stavu grafu zahrnují následující:

  • Vytváření a zničení hlasů
  • Spouštění nebo zastavování hlasů
  • Změna cílů hlasu
  • Úprava řetězů efektů
  • Povolení nebo zakázání efektů
  • Nastavení parametrů pro efekty nebo integrované řadiče obrazovky, filtry, svazky a mixéry

Libovolnou sadu změn stavu grafu lze kombinovat a provádět jako atomické transakce. Tyto atomické operace se označují jako sady operací. Jsou popsány v přehledu sad operací XAudio2.

Interní reprezentace dat

Zvuková data v grafu XAudio2 se vždy ukládají a zpracovávají ve 32bitové podobě PCM s plovoucí desetinou čárkou. Počet kanálů a vzorkovací frekvence se ale v grafu můžou lišit. Formát, ve kterém daný hlas zpracovává zvuk, je určen typem hlasu a parametry použitými k vytvoření hlasu.

Typ hlasu Parametry
IXAudio2SourceVoice Počet kanálů a vzorkovací frekvence hlasů, do kterých zdrojový hlas odesílá zvuk.
IXAudio2SubmixVoice a IXAudio2MasteringVoice InputChannels a inputSampleRate argumenty použité k vytvoření hlasu submix/mastering.

 

Převod formátu

XAudio2 zpracovává všechny vzorkovací frekvence nebo převody kanálů, které se vyžadují při přenosu zvuku z jednoho hlasu do druhého, s následujícími omezeními:

  • Všechny cílové hlasy pro určitý hlas musí běžet ve stejné vzorkovací frekvenci.
  • Efekty v řetězu efektů můžou změnit počet kanálů zvuku, ale ne její vzorkovací frekvence.
  • Počet výstupních kanálů řetězu efektů se musí shodovat s hlasy, na které odesílá.
  • Nelze provést žádnou změnu dynamického grafu, která by porušila výše uvedená pravidla.

Na vstupní straně můžou zdrojové hlasy číst data v libovolném platném formátu PCM nebo v libovolném komprimovaném formátu podporovaném XAudio2. Pokud jsou vstupní data komprimovaná, před provedením dalšího zpracování se dekóduje do PCM s plovoucí desetinou čárkou.

Na straně výstupu můžou hlavní hlasy vytvářet pouze data PCM. Tato data vždy vyhovují stejným omezením popsaným výše pro vstupní data PCM.

zvukové grafy

Průvodce programováním v XAudio2

Postupy: Vytvoření grafu základního zpracování zvuku

Postupy: Dynamické přidávání nebo odebírání hlasů ze zvukového grafu

Postupy: Použití Submix Voices

Postupy: Vytvoření řetězu efektů