Agarrando un marco de póster
[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.
[Esta API no se admite y puede modificarse o no estar disponible en el futuro].
En este artículo se describe cómo mostrar un marco de póster de un archivo multimedia digital mediante el objeto Media Detector (MediaDet) proporcionado con DirectShow Editing Services.
Media Detector es un objeto auxiliar que puede obtener información de formato de un archivo de origen multimedia. También puede obtener una imagen de mapa de bits de una secuencia de vídeo en el archivo de origen. Suponiendo que el archivo es buscable, puede obtener la imagen desde cualquier punto del archivo. La imagen devuelta siempre está en formato RGB de 24 bits.
El Detector de medios no es un filtro y la aplicación no necesita usar el Administrador de gráficos de filtros ni crear un grafo de filtro. Internamente, el Detector de medios crea un gráfico de filtros que contiene el filtro de captura de ejemplo. Para obtener un mapa de bits, el Detector de medios busca y pausa el gráfico de filtros y, a continuación, recupera el mapa de bits del filtro Sample Grabber. La aplicación se comunica con Media Detector a través de la interfaz IMediaDet . Media Detector es un buen ejemplo de encapsular un grafo de filtro dentro de un objeto auxiliar, con el fin de proteger las aplicaciones de los detalles relacionados con el grafo.
El Detector de medios funciona en dos modos. Cuando se crea por primera vez, el Detector de medios está en modo de "recopilación de información". Puede especificar el nombre de un archivo multimedia y obtener información sobre cada una de las secuencias del archivo, como el tipo de formato, la velocidad de fotogramas o la duración. Si el archivo contiene una secuencia de vídeo, puede cambiar el Detector de medios al modo de "captura de mapa de bits" y recuperar mapas de bits del origen. Sin embargo, una vez que lo hagas, no puedes volver a cambiar el Detector de Medios a su modo original; se adjunta permanentemente a esa secuencia de vídeo. Para trabajar con otra secuencia u otro archivo, debe crear una nueva instancia de Media Detector.
Nota:
En los ejemplos de código de este tutorial se usa la clase CComPtr ATL, que administra automáticamente los recuentos de referencias. Si prefiere usar punteros de interfaz sin formato, no olvide liberar todas las interfaces cuando haya terminado con él. Además, para mayor brevedad, los ejemplos de código omiten gran parte de la comprobación de errores que debe realizar una aplicación. En el código de trabajo, compruebe siempre los valores HRESULT .
Este tutorial contiene los siguientes pasos:
- Paso 1: Crear Windows Framework
- Paso 2: Agregar un comando de menú para obtener un marco de póster
- Paso 3: Implementar la función Frame-Grabbing
- Paso 4: Dibujar el mapa de bits en el área de cliente
Temas relacionados