Événements de session multimédia
La plupart des opérations de la session multimédia sont effectuées de manière asynchrone. L’application doit donc écouter les événements à l’aide de l’interface IMFMediaEventGenerator de la session multimédia. (L’interface IMFMediaSession hérite IMFMediaEventGenerator.) La séquence exacte d’événements dépend de votre application, mais les événements suivants sont déclenchés par la session multimédia dans presque toutes les situations.
Événement | Description |
---|---|
MEEndOfPresentation | Déclenché lorsque la source multimédia a terminé la présentation. Les données peuvent toujours passer par le pipeline pour l’instant. |
MEError | Déclenché si une erreur se produit pendant la diffusion en continu. |
MESessionClosed | Déclenché lorsque la méthode Close se termine. Cet événement est le dernier événement que la session multimédia met en file d’attente. Une fois cet événement reçu, il est sûr d’arrêter toutes les sources multimédias que vous avez créées. |
MESessionEnded | Déclenché lorsque la session multimédia est terminée avec la dernière présentation. |
MESessionNotifyPresentationTime | Avertit l’application de l’heure de présentation au démarrage de la nouvelle présentation. |
MESessionStarted | Déclenché lorsque la méthode Start se termine. Sauf si une erreur s’est produite, les données passent par le pipeline à ce stade. |
MESessionTopologySet | Déclenché lorsque la méthode SetTopology se termine. Sauf si une erreur se produit, l’application n’a pas besoin d’effectuer d’action. |
MESessionTopologyStatus | Déclenché à différents moments lorsque l’état d’une topologie change. |
La méthode IMFMediaSession ::Shutdown ne déclenche pas d’événement. La méthode Shutdown est synchrone. Une fois cette méthode retournée, il est sûr de libérer votre pointeur de rappel d’événement.
Outre les événements de la session multimédia, l’application peut recevoir des événements des récepteurs multimédias dans la topologie. Il peut s’agir d’événements personnalisés définis par le récepteur multimédia, qui peuvent contenir des données arbitraires. Par exemple, le récepteur peut dériver les données d’événement des données sources, qui peuvent provenir d’une source externe non approuvée. Une application doit ignorer les événements qu’elle ne reconnaît pas et faire preuve de prudence lors de l’analyse des données d’événement.
Rubriques connexes