共用方式為


媒體會話事件

大部分媒體會話的作業都是以異步方式執行,因此應用程式必須使用媒體會話的 IMFMediaEventGenerator 介面來接聽事件。 (IMFMediaSession介面繼承了 IMFMediaEventGenerator 。確切的事件順序將取決於您的應用程式,但幾乎任何情況下,媒體會話都會引發下列事件。

事件 描述
MEEndOfPresentation 當媒體來源完成簡報時引發。 目前數據可能仍在透過管線移動。
MEError 如果在串流期間發生錯誤,則引發 。
MESessionClosed Close 方法完成時引發。 此事件是媒體會話佇列的最後一個事件。 在您收到此事件之後,可以安全地關閉您所建立的任何媒體來源。
MESessionEnded 當媒體會話完成最後一個簡報時引發。
MESessionNotifyPresentationTime 通知新簡報開始的簡報時間應用程式。
MESessionStarted 當 start方法完成時引發。 除非發生錯誤,否則此時數據會透過管線移動。
MESessionTopologySet 當 SetTopology方法完成時引發。 除非發生錯誤,否則應用程式不需要採取任何動作。
MESessionTopologyStatus 在拓撲狀態變更時,於各種時間引發。

 

IMFMediaSession::Shutdown 方法不會引發事件。 Shutdown 方法是同步的。 這個方法傳回之後,可以放心地釋放事件回呼指標。

除了來自媒體會話的事件之外,應用程式可能會從拓撲中的媒體接收接收事件。 這些可以是媒體接收所定義的自定義事件,其中可能包含任意數據。 例如,接收可能會從源數據衍生事件數據,其可能來自不受信任的外部來源。 應用程式應該忽略無法辨識的任何事件,並在剖析事件數據時小心。

媒體會話