Mediensitzungsereignisse

Die meisten Vorgänge der Mediensitzung werden asynchron ausgeführt, sodass die Anwendung mithilfe der IMFMediaEventGenerator-Schnittstelle der Mediensitzung auf Ereignisse lauschen muss. (Die IMFMediaSession-Schnittstelle erbt IMFMediaEventGenerator.) Die genaue Abfolge der Ereignisse hängt von Ihrer Anwendung ab, aber die folgenden Ereignisse werden in fast jeder Situation von der Mediensitzung ausgelöst.

Ereignis Beschreibung
MEEndOfPresentation Wird ausgelöst, wenn die Medienquelle die Präsentation abgeschlossen hat. Zu diesem Zeitpunkt werden möglicherweise noch Daten durch die Pipeline verschoben.
MEError Wird ausgelöst, wenn während des Streamings ein Fehler auftritt.
MESessionClosed Wird ausgelöst, wenn die Close-Methode abgeschlossen ist. Dieses Ereignis ist das letzte Ereignis, das die Mediensitzung in die Warteschlange stellt. Nachdem Sie dieses Ereignis erhalten haben, können Sie alle von Ihnen erstellten Medienquellen sicher herunterfahren.
MESessionEnded Wird ausgelöst, wenn die Mediensitzung mit der letzten Präsentation abgeschlossen ist.
MESessionNotifyPresentationTime Benachrichtigt die Anwendung der Präsentationszeit, wann die neue Präsentation gestartet wird.
MESessionStarted Wird ausgelöst, wenn die Start-Methode abgeschlossen ist. Es sei denn, es ist ein Fehler aufgetreten, daten werden zu diesem Zeitpunkt durch die Pipeline verschoben.
MESessionTopologySet Wird ausgelöst, wenn die SetTopology-Methode abgeschlossen ist. Sofern kein Fehler auftritt, muss die Anwendung keine Aktion ausführen.
MESessionTopologyStatus Wird zu verschiedenen Zeiten ausgelöst, wenn sich die status einer Topologie ändert.

 

Die IMFMediaSession::Shutdown-Methode löst kein Ereignis aus. Die Shutdown-Methode ist synchron. Nachdem diese Methode zurückgegeben wurde, kann der Ereignisrückrufzeiger sicher freigegeben werden.

Zusätzlich zu Ereignissen aus der Mediensitzung empfängt die Anwendung möglicherweise Ereignisse von den Mediensenken in der Topologie. Dies können benutzerdefinierte Ereignisse sein, die von der Mediensenke definiert werden, die beliebige Daten enthalten können. Beispielsweise kann die Senke die Ereignisdaten von den Quelldaten ableiten, die aus einer nicht vertrauenswürdigen externen Quelle stammen können. Eine Anwendung sollte alle Ereignisse ignorieren, die sie nicht erkennt, und beim Analysieren von Ereignisdaten Vorsicht walten lassen.

Mediensitzung