Reproducción de secuencias web de ASF en DirectShow
[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.
Microsoft DirectShow admite secuencias web 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 Reproductor multimedia de Windows serie 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 . (Esta estructura se documenta en la documentación del SDK de Windows Media 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.
Cada ejemplo multimedia de una secuencia web contiene una estructura de WMT_WEBSTREAM_SAMPLE_HEADER , que se documenta en la documentación del SDK de Windows Media Format. La estructura 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 flujos web debe basarse en la clase CBaseRenderer . En el método CBaseRenderer::D oRenderSample , el filtro tendrá que analizar la estructura para obtener información sobre la secuencia web y, a continuación, realizar la acción adecuada. Normalmente, esto implica guardar el archivo en el disco y, a continuación, llamar a las funciones CreateUrlCacheEntry y CommitUrlCacheEntryW o CommitUrlCacheEntryA 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 evento 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 WMT_WEBSTREAM_FORMAT y WMT_WEBSTREAM_SAMPLE_HEADER, consulte la documentación del SDK de Windows Media Format.
Temas relacionados