Événements de session multimédia
La plupart des opérations de la session de média sont exécutées de façon asynchrone, de sorte que l’application doit écouter les événements à l’aide de l’interface IMFMediaEventGenerator de la session multimédia. (L’interface IMFMediaSession hérite de 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 pratiquement toutes les situations.
| Événement | Description |
|---|---|
| MEEndOfPresentation | Déclenché lorsque la source du média a terminé la présentation. Les données peuvent quand même être déplacées dans 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 est terminée. Cet événement est le dernier événement mis en file d’attente par la session multimédia. Une fois cet événement reçu, il est possible d’arrêter en toute sécurité 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 | Indique à l’application l’heure de la présentation à laquelle la nouvelle présentation doit commencer. |
| MESessionStarted | Déclenché lorsque la méthode Start se termine. À moins qu’une erreur ne se produise, les données sont déplacées dans le pipeline à ce stade. |
| MESessionTopologySet | Déclenché lorsque la méthode SetTopology se termine. À moins qu’une erreur ne se produise, l’application n’a pas besoin d’effectuer aucune action. |
| MESessionTopologyStatus | Déclenché à différents moments de modification de l’état d’une topologie. |
La méthode IMFMediaSession :: Shutdown ne déclenche pas d’événement. La méthode Shutdown est synchrone. Une fois que cette méthode a retourné une valeur, il est possible de libérer en toute sécurité votre pointeur de rappel d’événement.
En plus des événements de la session multimédia, l’application peut recevoir des événements des récepteurs de média 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 à partir 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.