Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
[Funkce přidružená k této stránce DirectShow je starší funkce. Byla nahrazena MediaPlayer, MMFMediaEnginea Audio/Video Capture v Media Foundation. Tyto funkce jsou optimalizované pro Windows 10 a Windows 11. Microsoft důrazně doporučuje, aby nový kód používal MediaPlayer, MMFMediaEngine a Audio/Video Capture v Media Foundation místo DirectShow, 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é.]
Popis
Filtr Synth je zdrojový filtr, který generuje zvukové vlnové tvary.
Tento filtr znázorňuje dynamické vytváření grafů. Může přepínat mezi nekomprimovaným zvukem PCM a komprimovaným formátem MS_ADPCM (Microsoft Adaptive Delta Pulse Code Modulation).
Tento filtr se v GraphEditu zobrazí jako Filtr syntetizátoru zvuku.
Další informace o vytváření dynamických grafů naleznete v tématu Dynamické vytváření grafů.
Použití
Filtr Synth umožňuje uživateli nastavit vlnový tvar, frekvenci, počet kanálů a další vlastnosti prostřednictvím stránky vlastností. Pokud chcete nastavit horní nebo dolní mezní bod rozsahu zametané frekvence, podržte klávesu SHIFT a nastavte posuvník frekvence. Filtr také podporuje vlastní rozhraní ISynth2 pro nastavení těchto vlastností.
Pokud chcete předvést funkci vytváření dynamických grafů, postupujte takto:
- Sestavte filtr a zaregistrujte ho pomocí nástroje Regsvr32.
- Spusťte GraphEdit.
- Vložte filtr syntetizátoru zvuku. Zobrazí se v kategorii Filtry DirectShow.
- Vykreslit výstupní pin filtru.
- Klikněte na tlačítko Přehrát.
- Otevřete stránku vlastností filtru.
- V oblasti Formát výstupu vyberte PCM nebo Microsoft ADPCM.
Poznámky k programování
Tato ukázka obsahuje následující soubory:
- Dynsrc.h, Dynsrc.cpp: Obsahuje dvě základní třídy pro zdrojové filtry, které podporují dynamické vytváření grafů, CDynamicSource a CDynamicSourceStream.
- ISynth.h: Deklaruje vlastní rozhraní ISynth2 pro nastavení vlastností filtru.
- Resource.h: Obsahuje konstanty prostředků.
- Synth.def: Exportuje funkce knihovny DLL potřebné knihovnou COM.
- Synth.h, Synth.cpp: Obsahuje CAudioSynth třídy, která generuje zvuková data, a CSynthFilter třída, která implementuje filtr.
- Synth.rc: Obsahuje prostředky používané filtrem.
- Synthprp.h, Synthprp.cpp: Implementuje stránku vlastností filtru.
Třída CDynamicSource je odvozena ze základní třídy CSource. Používá jeden nebo více výstupních pinů odvozených z CDynamicSourceStream třídy. Třída CDynamicSourceStream je přizpůsobena třídě CSourceStream, ale je odvozena z třídy CDynamicOutputPin, nikoli z třídy CBaseOutputPin.
CDynamicSource třída má následující metody nenalezena v CSource:
- Stop: Signalizuje událost zastavení (CDynamicOutputPin::m_hStopEvent) a vypne pracovní vlákno pro všechny nepřipojené piny. U připojeného pinu metoda Inactive vypne pracovní vlákno.
- Pozastavení: Obnoví událost zastavení.
- JoinFilterGraph: Volá metodu CDynamicOutputPin::SetConfigInfo na každém pinu.
CDynamicSourceStream třída má následující metody, které nejsou nalezeny v CSourceStream:
- DestroySourceThread: Vypne pracovní vlákno.
- Závažná chyba: Signalizuje chybu správci grafu filtru.
- OutputPinNeedsToBeReconnected: Indikuje, že výstupní pin by měl být znovu připojen. Při volání této metody zavolá pracovní vlákno metodu CDynamicOutputPin::DynamicReconnect k opětovnému připojení pinu.
Stažení ukázky
Pokud chcete stáhnout ukázky sady DirectShow SDK, nainstalujte nejnovější verzi sady Windows SDK.
Tato ukázka je nainstalována v následující cestě: [SDK Root]\Samples\Multimedia\DirectShow\Filters\Synth.
Související témata