Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
[Funktionen som är associerad med den här sidan, DirectShow, är en äldre funktion. Det har ersatts av MediaPlayer, IMFMediaEngineoch Audio / Video Capture i Media Foundation. Dessa funktioner har optimerats för Windows 10 och Windows 11. Microsoft rekommenderar starkt att ny kod använder MediaPlayer, IMFMediaEngine och Audio/Video Capture i Media Foundation i stället för DirectShow, när det är möjligt. Microsoft föreslår att befintlig kod som använder äldre API:er skrivs om för att använda de nya API:erna om möjligt.]
Beskrivning
Synth-filtret är ett källfilter som genererar ljudvågformer.
Det här filtret illustrerar dynamisk grafskapande. Den kan växla mellan okomprimerat PCM-ljud och komprimerat MS_ADPCM-format (Microsoft Adaptive Delta Pulse Code Modulation).
Det här filtret visas i GraphEdit som "Audio Synthesizer Filter".
Mer information om dynamisk grafbyggnad finns i Dynamic Graph Building.
Användning
Med Synth-filtret kan användaren ange vågform, frekvens, antal kanaler och andra egenskaper via egenskapssidan. Om du vill ange antingen den övre eller nedre slutpunkten för det svepande frekvensområdet håller du ned SKIFT medan du justerar skjutreglaget för frekvens. Filtret stöder också ett anpassat gränssnitt, ISynth2, för att ange dessa egenskaper.
Gör följande för att demonstrera funktionen för dynamisk grafskapande:
- Skapa filtret och registrera det med verktyget Regsvr32.
- Starta GraphEdit.
- Infoga ljudsynthesizerfiltret. Den visas i kategorin DirectShow-filter.
- Rendera filtrets utgångskontakt.
- Klicka på knappen Spela upp.
- Öppna filtrets egenskapssida.
- I området Utdataformat väljer du PCM eller Microsoft ADPCM.
Programmeringsanteckningar
Det här exemplet innehåller följande filer:
- Dynsrc.h, Dynsrc.cpp: Innehåller två basklasser för källfilter som stöder dynamisk grafbyggnad, CDynamicSource och CDynamicSourceStream.
- ISynth.h: Deklarerar det anpassade ISynth2-gränssnittet för att ange egenskaper för filtret.
- Resource.h: Innehåller resurskonstanter.
- Synth.def: Exporterar de DLL-funktioner som behövs av COM-biblioteket.
- Synth.h, Synth.cpp: Innehåller klassen CAudioSynth, som genererar ljuddata, och klassen CSynthFilter, som implementerar filtret.
- Synth.rc: Innehåller resurser som används av filtret.
- Synthprp.h, Synthprp.cpp: Implementerar filtrets egenskapssida.
Klassen CDynamicSource är anpassad från basklassen CSource. Den använder en eller flera utgångsstift som är härledda från klassen CDynamicSourceStream. Klassen CDynamicSourceStream är anpassad från klassen CSourceStream, men härleds från klassen CDynamicOutputPin i stället för klassen CBaseOutputPin.
Klassen CDynamicSource har följande metoder som inte finns i CSource:
- Stopp: Signalerar stopphändelsen (CDynamicOutputPin::m_hStopEvent) och stänger av arbetstråden för alla pins som inte är anslutna. Vid en ansluten pinne kommer metodens inaktivitet att stänga av arbetstråden.
- Paus: Återställer stopphändelsen.
- JoinFilterGraph: Anropar metoden CDynamicOutputPin::SetConfigInfo på varje stift.
Klassen CDynamicSourceStream har följande metoder som inte hittades i CSourceStream-:
- DestroySourceThread: Stänger av arbetstråden.
- FatalError: Signalerar ett fel till filtergrafhanteraren.
- OutputPinNeedsToBeReconnected: Signalerar att utgångsstiftet ska återanslutas. När den här metoden anropas, kallar arbetstråden metoden CDynamicOutputPin::DynamicReconnect för att återansluta pinnen.
Ladda ned exemplet
Om du vill ladda ned DirectShow SDK-exempel installerar du den senaste versionen av Windows SDK.
Det här exemplet installeras under följande sökväg: [SDK Root]\Samples\Multimedia\DirectShow\Filters\Synth.
Relaterade ämnen