Sdílet prostřednictvím


Sady operací XAudio2

Tento přehled představuje několik metod XAudio2, které můžete volat jako součást sady operací.

Několik metod XAudio2 bere OperationSet argument, který jim umožňuje volat jako součást odložené skupiny. V konkrétní době můžete použít celou sadu změn současně voláním funkce IXAudio2::CommitChanges s identifikátorem OperationSet této skupiny. Identifikátor je libovolné číslo. Umožňuje tak samostatné části klientského kódu použít samostatné atomické změny grafu bez jakéhokoli konfliktu. Doporučeným postupem je, aby klient inkrementoval globální čítač vždy, když potřebuje vygenerovat jedinečný nový identifikátor OperationSet. Sada změn grafu, které se používají atomicky, je zaručeno, že bude vzorek přesný. Například hlasy se začnou synchronizovat.

Pokud nastavíte OperationSet na XAUDIO2_COMMIT_NOW, změna se projeví okamžitě. Projeví se při prvním předání zvuku po volání metody. Pokud voláte CommitChanges s XAUDIO2_COMMIT_ALL, změny všech čekajících sad operací se provádějí bez ohledu na jejich identifikátor OperationSet.

Některé metody se projeví okamžitě, když jsou volána z zpětného volání XAudio2 s OperationSet XAUDIO2_COMMIT_NOW. Všechny ostatní metody, které přebírají OperationSet argument, se projeví pouze při dalším průchodu zpracování po zavolání metody (pokud je volána pomocí XAUDIO2_COMMIT_NOW) nebo po CommitChanges se volá se stejným OperationSet. Z tohoto důvodu nemusí určitá volání metody vždy probíhat ve stejném pořadí, v jakém byly volány.

Všechny čekající operace jsou potvrzeny atomicky při IXAudio2::StopEngine je volána. Všechny metody volané při zastavení modulu se projeví okamžitě bez ohledu na OperationSet zadané hodnoty. Při restartování motoru se XAudio2 vrátí do asynchronního režimu.

Mezi jednoduché scénáře, ve kterých jsou sady operací užitečné, patří následující příklady.

  • Souběžné spouštění více hlasů.
  • Souběžné odesílání vyrovnávací paměti do hlasu, nastavení hlasových parametrů a spuštění hlasu.
  • Změna grafu ve velkém měřítku, například připojení všech zdrojových hlasů k novému hlasu submixu

Viz Postupy: Seskupování zvukových metod jako sady operací příklad použití sady operací.

Metody sady operací

Jako součást sady operací můžete volat následující metody.

Jak jsme popsali dříve, klientský kód musí nakonec volat funkci IXAudio2::CommitChanges ke spuštění odložených změn.

sady operací

Průvodce programováním v XAudio2

Postupy: Seskupit zvukové metody jako sady operací