Condividi tramite


Esempio di filtro ambito

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Descrizione

Il filtro Ambito è un filtro renderer che visualizza i dati audio come forme d'onda.

Utilizzo

Per usare questo filtro, aprire GraphEdit ed eseguire il rendering di un file audio (o un file video con un flusso audio). Disconnettere temporaneamente il renderer audio e inserire il filtro di esempio Tee (Esempio filtro InfTee) Infinite-Pin. Riconnettere il renderer audio. Connettere quindi il secondo pin di output del filtro Tee Infinite-Pin al filtro Ambito. Eseguire ora il grafico.

La finestra Ambito viene implementata come finestra di dialogo, non come finestra effettiva. Gli sviluppatori che creano pannelli di controllo per modificare i parametri di filtro in tempo reale potrebbero voler usare una tecnica come questa anziché le pagine delle proprietà.

Il filtro Ambito illustra la configurazione di un thread separato per elaborare i dati. In questo caso, i dati vengono copiati in un buffer separato nel metodo IMemInputPin::Receive e quindi viene disegnato nella finestra Ambito del thread separato.

Il filtro Ambito consente anche di monitorare l'output audio per determinare se si esegue il ritaglio, in modo da poter regolare il guadagno.

Questo filtro viene visualizzato in GraphEdit come "Oscilloscope".

Download dell'esempio

Per scaricare gli esempi di DirectShow SDK, installare la versione più recente di Windows SDK.

Questo esempio viene installato nel percorso seguente: [SDK Root]\Samples\Multimedia\DirectShow\Filters\Scope.

Esempi di DirectShow