Sdílet prostřednictvím


Ovládání hlasitosti a rozteče XAudio2

Toto téma popisuje ovládání hlasitosti A rozteče XAudio2.

Řízení hlasitosti

Úrovně svazku se vyjadřují jako násobitele amplitudy s plovoucí desetinnou čárkou mezi -XAUDIO2_MAX_VOLUME_LEVEL a XAUDIO2_MAX_VOLUME_LEVEL (-224 až 224) s maximálním ziskem 144,5 dB. Objem 1,0 znamená, že neexistuje žádné ztlumení ani zisk; 0 znamená ticho; a záporné úrovně lze použít k invertci fáze zvuku. V XAudio2.h jsou k dispozici dvě vložené funkce pro převod mezi jednotkami svazku: XAudio2DecibelsToAmplitudeRatio a XAudio2AmplitudeRatioToDecibels.

Úroveň hlasitosti můžete použít u zvuku v několika bodech, když prochází grafem XAudio2:

  • Všechny typy hlasových hovorů na vstupu používají celkovou úroveň hlasitosti, kterou řídí pomocí metody IXAudio2Voice::SetVolume. V submixech a hlavních hlasech se celková úroveň hlasitosti použije těsně před integrovaným filtrem a řetězem efektů hlasu. Ve zdrojových hlasech se celková úroveň hlasitosti použije po integrovaném filtru a řetězu efektů hlasu.
  • Hlasy na výstup používají úroveň hlasitosti pro jednotlivé kanály, které řídí pomocí IXAudio2Voice::SetChannelVolumes metoda. Úroveň hlasitosti pro jednotlivé kanály se použije hned po závěrečném převodu vzorkovací frekvence hlasu a před odesláním na jiné hlasy.
  • Každé spojení mezi jedním hlasem a druhým má tabulku úrovní používaných k odesílání zvuku z každého zdrojového kanálu do každého cílového kanálu, který je řízen pomocí IXAudio2Voice::SetOutputMatrix metoda.

Všechny celkové svazky a svazky kanálu jsou zpočátku nastaveny na 1,0. Všechny matice na úrovni odesílání jsou výchozí pro odpovídající hodnoty, které zachovávají co nejpřesnější umístění signálu a kanálu. Podrobnosti najdete v přehledu mapování výchozích kanálů XAudio2.

Poznámka

XAudio2 automaticky upravuje úrovně hlasitosti na základě nastavení reproduktoru uživatele, aby se zachovala konzistentní úroveň hlasitosti napříč konfiguracemi. Pokud se nastavení uživatele neshoduje s fyzickou konfigurací, hlasitost bude buď příliš hlasitá, nebo příliš měkká v porovnání se systémem s přesnými nastaveními. Například systém nakonfigurovaný pro 5.1 ohraniční zvukové reproduktory, které mají pouze dva připojené reproduktory, budou znít příliš měkké. XAudio2 nedokáže zjistit, jestli nastavení reproduktoru uživatele správně odpovídá jejich fyzickému nastavení.

 

Ovládací prvek rozteč

Rozteč se vyjadřuje jako poměr vstupní rychlosti/výstupní rychlosti mezi 1/1 024 a 1 024/1 včetně. Poměr 1/1 024 snižuje sklon o 10 oktávů, zatímco poměr 1 024/1 ho zvyšuje o 10 oktávů. Můžete použít pouze metodu IXAudio2SourceVoice::SetFrequencyRatio použít úpravy sklonu u zdrojových hlasů a pouze v případě, že nebyly vytvořeny s příznakem XAUDIO2_VOICE_NOPITCH. Výchozí poměr frekvence je 1/1: to znamená, že se nemění výška. V XAudio2.h jsou k dispozici dvě vložené funkce pro převod mezi poměry frekvence a středníky: XAudio2FrequencyRatioToSemitones a XAudio2SemitonesToFrequencyRatio.

ovládací hlasitosti a rozteče

Průvodce programováním v XAudio2

Postupy: Změna hlasu

Postupy: Změna hlasové hlasitosti