Reproducción de secuencias web en DirectShow

Microsoft DirectShow admite flujos web (consulte Web Secuencias 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 de 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 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.

Web Secuencias