媒體會話事件
大部分媒體會話的作業都是以異步方式執行,因此應用程式必須使用媒體會話的 IMFMediaEventGenerator 介面來接聽事件。 (IMFMediaSession介面繼承了 IMFMediaEventGenerator 。確切的事件順序將取決於您的應用程式,但幾乎任何情況下,媒體會話都會引發下列事件。
事件 | 描述 |
---|---|
MEEndOfPresentation | 當媒體來源完成簡報時引發。 目前數據可能仍在透過管線移動。 |
MEError | 如果在串流期間發生錯誤,則引發 。 |
MESessionClosed | 當 Close 方法完成時引發。 此事件是媒體會話佇列的最後一個事件。 在您收到此事件之後,可以安全地關閉您所建立的任何媒體來源。 |
MESessionEnded | 當媒體會話完成最後一個簡報時引發。 |
MESessionNotifyPresentationTime | 通知新簡報開始的簡報時間應用程式。 |
MESessionStarted | 當 start方法完成時引發。 除非發生錯誤,否則此時數據會透過管線移動。 |
MESessionTopologySet | 當 SetTopology方法完成時引發。 除非發生錯誤,否則應用程式不需要採取任何動作。 |
MESessionTopologyStatus | 在拓撲狀態變更時,於各種時間引發。 |
IMFMediaSession::Shutdown 方法不會引發事件。 Shutdown 方法是同步的。 這個方法傳回之後,可以放心地釋放事件回呼指標。
除了來自媒體會話的事件之外,應用程式可能會從拓撲中的媒體接收接收事件。 這些可以是媒體接收所定義的自定義事件,其中可能包含任意數據。 例如,接收可能會從源數據衍生事件數據,其可能來自不受信任的外部來源。 應用程式應該忽略無法辨識的任何事件,並在剖析事件數據時小心。
相關主題