Sdílet prostřednictvím


Čtení multikanálového zvuku

[Funkce přidružená k této stránce, Windows Media Format 11 SDK, je starší funkce. Byla nahrazena čtečkou zdroje a zapisovače jímky. Zdrojový čtečka a jímkový zapisovač jsou optimalizované pro Windows 10 a Windows 11. Microsoft důrazně doporučuje, aby nový kód používal čtečka zdrojů a zapisovač výstupu místo Windows Media Format 11 SDK, pokud je to možné. Microsoft navrhuje, aby se stávající kód, který používá starší rozhraní API, přepsal, aby se nová rozhraní API používala, pokud je to možné.]

Kodek Windows Media Audio 9 Professional může kódovat vícekanálový zvuk (více než dva kanály). Při čtení souboru s vícekanálovým zvukem je nutné správně nakonfigurovat výstup nebo se zvuk doručí s nižší kvalitou a stereo. Pokud chcete nastavit výstup pro přenos vícekanálového zvuku, musíte konfigurovat dvě nastavení výstupu: g_wszEnableDiscreteOutput a g_wszSpeakerConfig.

Nastavení g_wszEnableDiscreteOutput na TRUE nastaví kodek tak, aby doručil výstup zvuku s vysokým rozlišením. Zvuk s vysokým rozlišením je kódován kodekem Windows Media Audio 9 s 24bitovými vzorky ve stereofonním nebo více kanálech. Pokud je toto nastavení FALSE, doručí se pouze 16bitový stereo výstup.

Počet reproduktorů na přehrávaném počítači je nastavený s g_wszSpeakerConfig. Toto nastavení je hodnota DWORD nastavená na jednu z konstant pro reproduktory DirectSound uvedených v následující tabulce. Pokud chcete tyto názvy konstant pro kompilátor přeložit, musíte zahrnout dsound.h.

Konstanta Hodnota Popis
DSSPEAKER_DIRECTOUT 0x00000000 Zvuk se předává přímo bez konfigurace reproduktorů.
DSSPEAKER_HEADPHONE 0x00000001 Klientský počítač je vybaven sluchátky.
DSSPEAKER_MONO 0x00000002 Klientský počítač je vybaven monauralním reproduktorem.
DSSPEAKER_QUAD 0x00000003 Klientský počítač je vybaven kvadraphonickými reproduktory.
DSSPEAKER_STEREO 0x00000004 Klientský počítač je vybaven stereofonními reproduktory.
DSSPEAKER_SURROUND 0x00000005 Klientský počítač je vybaven čtyřkanálovými reproduktory s prostorovým zvukem.
DSSPEAKER_5POINT1 0x00000006 Klientský počítač je vybaven pěti reproduktory a subwooferem.
DSSPEAKER_7POINT1 0x00000007 Klientský počítač je vybaven sedmi reproduktory a subwoofer.

 

K nastavení těchto nastavení použijte IWMReaderAdvanced2::SetOutputSetting.

A konečně, aby byly kanály vyvedeny samostatně, bez převedení na stereo, musíte nastavit správný typ média na výstupu podle těchto kroků:

  1. Zavolejte IWMReader::GetOutputFormatCount, abyste získali počet podporovaných formátů pro příslušný zvukový výstup. Indexy výstupního formátu jsou založené na nule.
  2. Pro každý podporovaný formát zavolejte IWMReader::GetOutputFormat pro získání rozhraní IWMOutputMediaProps na objektu vlastností výstupního média.
  3. Zavolejte IWMMediaProps::GetMediaType pro zjištění typu média.
  4. Pokud je načtený typ média požadovaným typem multichannel, nastavte ho voláním IWMReader::SetOutputProps.

Po nastavení diskrétního výstupu a konfigurace reproduktoru by měly výstupní formáty uvedené čtenářem obsahovat vícekanálové formáty, které používají WAVEFORMATEXTENSIBLE strukturu. Pokud před nastavením vlastností vypíšete výstupní formáty, budou zahrnuty pouze formáty s 1 nebo 2 kanály a maximální počet 16 bitů na kanál. Stejně jako u jiných zvukových formátů byste měli používat pouze formáty uvedené čtenářem; nenakonfigurujte vlastní.

Poznámka

Výstup vícekanálového zvuku můžete provést pouze v případě, že je vaše aplikace spuštěná v systému Microsoft Windows XP nebo novější verzi systému Microsoft Windows.

 

vstupy, streamy a výstupy

čtení souborů ASF

nastavení výstupu

Práce se zvukem High-Resolution PCM Audio