Esempio di filtro asincrono

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine 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, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Descrizione

L'esempio filtro asincrono è un filtro di lettura file che supporta il download progressivo. Questo filtro di esempio implementa le interfacce IAsyncReader e IFileSourceFilter . Supporta i file MPEG, ma non i file AVI.

Utilizzo

Questo esempio include un'applicazione da riga di comando piccola, Memfile.exe, che illustra il filtro. Gli argomenti della riga di comando specificano un file multimediale e una frequenza di bit, in kilobyte al secondo. L'applicazione legge il file in memoria alla frequenza specificata e riproduce il file. A tale scopo, crea un'istanza del filtro, aggiunge il filtro al grafico del filtro e esegue il rendering del pin di output del filtro.

Dalla riga di comando digitare:

File Memfile BitRate

Il filtro di esempio asincrono non supporta i file AVI, perché non è possibile connettersi al filtro AVI Splitter . Il pin di output del filtro asincrono propone MEDIATYPE_Stream e MEDIASUBTYPE_NULL per il tipo di supporto. Il pin di input nel filtro splitter AVI non accetta MEDIASUBTYPE_NULL e non propone alcun tipo di proprio. Pertanto, la connessione pin ha esito negativo. Il filtro asincrono potrebbe essere migliorato per offrire MEDIASUBTYPE_Avi quando appropriato. Ad esempio, potrebbe esaminare il formato di file o usare l'estensione del file.

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\Async.

Esempi di DirectShow