Eventos de sessão de mídia
A maioria das operações da Sessão de Mídia é executada de forma assíncrona, portanto, o aplicativo deve escutar eventos usando a interface IMFMediaEventGenerator da Sessão de Mídia. (A interface IMFMediaSession herda IMFMediaEventGenerator.) A sequência exata de eventos dependerá do aplicativo, mas os eventos a seguir são gerados pela Sessão de Mídia em quase qualquer situação.
Evento | Descrição |
---|---|
MEEndOfPresentation | Gerado quando a fonte de mídia concluiu a apresentação. Os dados ainda podem estar se movendo pelo pipeline no momento. |
MEError | Gerado se ocorrer um erro durante o streaming. |
MESessionClosed | Gerado quando o método Close é concluído. Esse evento é o último evento que a Sessão de Mídia enfileira. Depois de receber esse evento, é seguro desligar todas as fontes de mídia que você criou. |
MESessionEnded | Gerado quando a Sessão de Mídia é concluída com a última apresentação. |
MESessionNotifyPresentationTime | Notifica a aplicação da hora da apresentação quando a nova apresentação será iniciada. |
MESessionStarted | Gerado quando o método Start é concluído. A menos que ocorra um erro, os dados estão se movendo pelo pipeline neste momento. |
MESessionTopologySet | Gerado quando o método SetTopology é concluído. A menos que ocorra um erro, o aplicativo não precisa executar nenhuma ação. |
MESessionTopologyStatus | Gerado em vários momentos em que o status de uma topologia é alterado. |
O método IMFMediaSession::Shutdown não gera um evento. O método Shutdown é síncrono. Depois que esse método retorna, é seguro liberar o ponteiro de retorno de chamada de evento.
Além dos eventos da Sessão de Mídia, o aplicativo pode receber eventos dos coletores de mídia na topologia. Podem ser eventos personalizados definidos pelo coletor de mídia, que podem conter dados arbitrários. Por exemplo, o coletor pode derivar os dados de evento dos dados de origem, que podem ser de uma fonte externa não confiável. Um aplicativo deve ignorar todos os eventos que não reconhece e ter cuidado ao analisar dados de evento.
Tópicos relacionados