Reproducción de secuencias web en DirectShow

[La característica asociada a esta página, WINDOWS Media Format 11 SDK, es una característica heredada. Se ha reemplazado por lector de origen y escritor receptor. Lector de origen y escritor receptor se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use lector fuente y escritor receptor en lugar del SDK de Windows Media Format 11, 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.

Microsoft DirectShow admite secuencias web (consulte Flujos web para obtener más información) en escenarios de reproducción de archivos a través del filtro lector asF wm, pero debe escribir su propio filtro DirectShow para capturar y conservar la secuencia.

Nota

Para reproducir secuencias web en el contenido que se transmite desde un servidor que ejecuta Windows Media Services, use el control ActiveX® de la serie Reproductor multimedia de Windows 9 incrustado en una página web.

 

Cuando se proporciona un archivo que contiene secuencias de tipo WMMEDIATYPE_FileTransfer, el lector asf de WM creará un pin de salida para él. El bloque de formato será una estructura WMT_WEBSTREAM_FORMAT . Si no hay ningún filtro de bajada disponible que pueda controlar ese tipo de medio, la patilla permanecerá desconectada, pero el archivo seguirá reproduciendo las secuencias de audio o vídeo.

Es importante comprender que cada muestra multimedia de una secuencia web contiene una estructura de WMT_WEBSTREAM_SAMPLE_HEADER , que tiene una longitud variable en función de la longitud de su miembro wszURL . El puntero a los datos de ejemplo apunta inicialmente a esta estructura y debe avanzar el puntero más allá de la estructura para tener acceso a los datos reales del flujo. El filtro del controlador de secuencias web debe basarse en la clase CBaseRenderer . En el método DoRenderSample , el filtro deberá analizar la estructura para obtener información sobre la secuencia web y, a continuación, realizar la acción adecuada. Normalmente, esto implicará guardar el archivo en el disco y, a continuación, llamar a CommitUrlCacheEntry y CreateUrlCacheEntry para colocar los archivos en la memoria caché de Internet Explorer. El filtro debe controlar los archivos de varias partes, es decir, los archivos que son mayores de un ejemplo y también deben controlar los comandos render, que especifica el miembro WMT_WEBSTREAM_SAMPLE_HEADER.wSampleType . El filtro envía un EC_OLE_EVENT a la aplicación, junto con el texto de la cadena WMT_WEBSTREAM_SAMPLE_HEADER.wszURL que contiene el nombre del archivo que se va a representar. A continuación, la aplicación hace que el explorador muestre la página especificada. Si la secuencia web se ha creado correctamente, el archivo ya debería estar en la memoria caché.

Para obtener más información sobre CBaseRenderer, DoRenderSample y EC_OLE_EVENT, consulte la documentación del SDK de DirectShow.

Flujos web