Compartir a través de


Uso del detector de medios

[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].

El detector de medios es un objeto auxiliar que puede recuperar información sobre un archivo, como el número de secuencias, su tipo y su duración. También contiene métodos para recuperar fotogramas de póster de una secuencia de vídeo. Expone la interfaz IMediaDet .

El detector de medios funciona en uno de los dos modos. Cuando se crea una instancia del detector de medios, no se adjunta a un archivo de origen determinado. En este modo, puede recuperar información de secuencia de varios archivos de origen. Sin embargo, una vez que use el detector de medios para obtener un marco de póster, cambia al modo de captura de mapa de bits. En el modo de captura de mapa de bits, el detector de medios se adjunta a una secuencia de vídeo específica y los métodos de información de secuencia ya no funcionan. Además, no hay forma de volver al detector de medios a su modo de inicio. Por lo tanto, obtenga cualquier información de secuencia que necesite antes de recuperar fotogramas de póster, o bien cree nuevas instancias del detector de medios para cada secuencia.

Para obtener información de flujo, haga lo siguiente:

  1. Llame a IMediaDet::p ut_Filename con el nombre del archivo de origen.
  2. Llame a IMediaDet::get_OutputStreams para obtener el número de secuencias en el origen.
  3. Especifique un número de secuencia con IMediaDet::p ut_CurrentStream. A continuación, llame a uno o varios de los métodos siguientes:

Para obtener un marco de póster, especifique el número de secuencia, como en el paso anterior. A continuación, llame a IMediaDet::GetBitmapBits, que copia un marco de póster en un búfer o IMediaDet::WriteBitmapBits, que guarda un marco de póster en un archivo.

Trabajar con orígenes