Compartir a través de


Ejemplo de filtro asincrónico

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

Descripción

El ejemplo de filtro asincrónico es un filtro de lector de archivos que admite la descarga progresiva. Este filtro de ejemplo implementa las interfaces IAsyncReader e IFileSourceFilter . Admite archivos MPEG, pero no archivos AVI.

Uso

En este ejemplo se incluye una pequeña aplicación de línea de comandos, Memfile.exe, que muestra el filtro. Los argumentos de la línea de comandos especifican un archivo multimedia y una velocidad de bits, en kilobytes por segundo. La aplicación lee el archivo en memoria a la velocidad especificada y reproduce el archivo. Para ello, crea una instancia del filtro, agrega el filtro al gráfico de filtros y representa el pin de salida del filtro.

En la línea de comandos, escriba:

Velocidad de bits de nombre de archivo memfile

El filtro de ejemplo asincrónico no admite archivos AVI, ya que no puede conectarse al filtro divisor avi . El pin de salida del filtro asincrónico propone MEDIATYPE_Stream y MEDIASUBTYPE_NULL para el tipo de medio. El pin de entrada del filtro divisor AVI no acepta MEDIASUBTYPE_NULL y no propone ningún tipo propio. Por lo tanto, se produce un error en la conexión de patillas. El filtro asincrónico se podría mejorar para ofrecer MEDIASUBTYPE_Avi cuando corresponda. Por ejemplo, podría examinar el formato de archivo o usar la extensión de archivo.

Descarga del ejemplo

Para descargar los ejemplos del SDK de DirectShow, instale la versión más reciente de Windows SDK.

Este ejemplo se instala en la siguiente ruta de acceso: [SDK Root]\Samples\Multimedia\DirectShow\Filters\Async.

Ejemplos de DirectShow