Eventos de sesión multimedia
La mayoría de las operaciones de la sesión multimedia se realizan de forma asincrónica, por lo que la aplicación debe escuchar eventos mediante la interfaz IMFMediaEventGenerator de la sesión multimedia. (La interfaz IMFMediaSession hereda IMFMediaEventGenerator). La secuencia exacta de eventos dependerá de la aplicación, pero la sesión multimedia genera los siguientes eventos en casi cualquier situación.
Evento | Descripción |
---|---|
MEEndOfPresentation | Se genera cuando el origen multimedia ha completado la presentación. Es posible que los datos todavía se muevan a través de la canalización en este momento. |
MEError | Se genera si se produce un error durante el streaming. |
MESessionClosed | Se genera cuando se completa el método Close . Este evento es el último evento que pone en cola la sesión multimedia. Después de recibir este evento, es seguro apagar los orígenes multimedia que haya creado. |
MESessionEnded | Se genera cuando la sesión multimedia se realiza con la última presentación. |
MESessionNotifyPresentationTime | Notifica a la aplicación de la hora de presentación cuando se inicie la nueva presentación. |
MESessionStarted | Se genera cuando se completa el método Start . A menos que se produzca un error, los datos se mueven a través de la canalización en este momento. |
MESessionTopologySet | Se genera cuando se completa el método SetTopology . A menos que se produzca un error, la aplicación no necesita realizar ninguna acción. |
MESessionTopologyStatus | Se genera en varias ocasiones cuando cambia el estado de una topología. |
El método IMFMediaSession::Shutdown no genera un evento. El método Shutdown es sincrónico. Una vez devuelto este método, es seguro liberar el puntero de devolución de llamada de evento.
Además de los eventos de la sesión multimedia, la aplicación puede recibir eventos de los receptores multimedia de la topología. Estos pueden ser eventos personalizados definidos por el receptor de medios, que pueden contener datos arbitrarios. Por ejemplo, el receptor podría derivar los datos de evento de los datos de origen, que pueden ser de un origen externo que no es de confianza. Una aplicación debe omitir cualquier evento que no reconozca y tenga cuidado al analizar los datos de eventos.
Temas relacionados