Zvukové efekty XAudio2
Zvukový efekt je objekt, který přijímá příchozí zvuková data a provádí některé operace s daty před jejich předáním. Pomocí efektu můžete provádět různé úlohy, včetně přidání návratu ke zvukovému streamu a monitorování maximálních úrovní hlasitosti.
Efektové řetězy
Jakýkoli hlas XAudio2 může hostovat řetězec zvukových efektů. Pomocí pole XAUDIO2_EFFECT_DESCRIPTOR struktur můžete určit řetězy efektů. Každý popisovač obsahuje ukazatel na objekt efektu poskytnutý klientem. Tyto objekty musí implementovat rozhraní APO (Audio Processing Object). Další informace o modelu APO najdete v přehledu XAPO.
Řetězy efektů můžou klient upravovat dynamicky (zatímco je spuštěný modul XAudio2), efekty je možné povolit nebo zakázat jednotlivě a parametry efektu je možné změnit – to vše bez přerušení zvuku. Kdykoli se změní jakýkoli aspekt grafu efektu, XAudio2 graf znovu optimalizuje, aby se zabránilo zbytečnému zpracování. Viz IXAudio2Voice::SetEffectChain, IXAudio2Voice::EnableEffecta IXAudio2Voice::SetEffectParameters.
Po připojení efektu k hlasu XAudio2, XAudio2 převezme kontrolu nad efektem a klient by neměl provádět žádné další volání. Nejjednodušší způsob, jak to zajistit, je uvolnit všechny ukazatele na efekt.
Efekty v daném řetězci efektů XAudio2 musí spotřebovávat a produkovat zvuk s plovoucí desetinou čárkou při vzorkovací frekvenci tohoto hlasu. Jediným aspektem zvukového formátu, který můžou změnit, je počet kanálů (například efekt reverb může převést mono data na 5,1). Klient může použít XAUDIO2_EFFECT_DESCRIPTOR.výstupních kanálech pole k určení počtu kanálů, které mají jednotlivé efekty vytvořit. Řetěz efektů selže, pokud některý z efektů nemůže splnit tyto požadavky nebo pokud efekt vytvoří řadu kanálů, které další efekt nemůže zpracovat. Všechny IXAudio2Voice::EnableEffect nebo IXAudio2Voice::D isableEffect volání, která způsobí, že řetězec účinku přestane tyto požadavky plnit, selže.
Rozhraní APO používaná v XAudio2 musí být destruktivní. To znamená, že vždy přepíše všechna data, která najdou ve výstupních vyrovnávacích pamětích. Jinak může být výsledný zvuk nesprávný, protože XAudio2 neposkytuje žádnou záruku, že tyto vyrovnávací paměti byly inicializovány dříve s tichou.
Předdefinované efekty XAudio2
Následující tabulka uvádí sadu předdefinovaných zvukových efektů, které poskytuje XAudio2 a jejich metody vytváření.
Efekt | Metoda vytvoření |
---|---|
Ozvěna | XAudio2CreateReverb |
Měřič svazků | XAudio2CreateVolumeMeter |
Příklad vytvoření a použití instance zvukového efektu najdete v tématu Postupy: Vytvoření řetězu efektů.
Vlastní efekty v XAudio2
Rozhraní API XAPO poskytuje architekturu pro vytváření vlastních zvukových efektů, které můžete použít v XAudio2. Příklad vytvoření vlastního efektu pomocí objektu XAPO najdete v tématu Postupy: Vytvořeníobjektu XAPO .
Knihovna efektů XAPO (XAPOFX)
XAPOFX poskytuje další knihovnu objektů XAPO a společný mechanismus jejich vytváření. Příklad použití XAPOFX s XAudio2, viz Postupy: Použití XAPOFX v XAudio2.
Související témata