次の方法で共有


メディア セッション イベント

メディア セッションの操作のほとんどは非同期的に実行されるため、アプリケーションはメディア セッションの IMFMediaEventGenerator インターフェイスを使用してイベントをリッスンする必要があります。 (IMFMediaSession インターフェイスは、IMFMediaEventGenerator 継承します)。イベントの正確なシーケンスはアプリケーションによって異なりますが、ほとんどの状況でメディア セッションによって次のイベントが発生します。

出来事 形容
MEEndOfPresentation メディア ソースがプレゼンテーションを完了したときに発生します。 現時点では、データは引き続きパイプライン内を移動している可能性があります。
MEError ストリーミング中にエラーが発生した場合に発生します。
MESessionClosed Close メソッドが完了したときに発生します。 このイベントは、メディア セッションがキューに入る最後のイベントです。 このイベントを受信した後は、作成したメディア ソースを安全にシャットダウンできます。
MESessionEnded メディア セッションが最後のプレゼンテーションで完了したときに発生します。
MESessionNotifyPresentationTime 新しいプレゼンテーションが開始されるときに、プレゼンテーションの時刻をアプリケーションに通知します。
MESessionStarted Start メソッドが完了したときに発生します。 エラーが発生しない限り、この時点でデータはパイプライン内を移動しています。
MESessionTopologySet SetTopology メソッドが完了したときに発生します。 エラーが発生しない限り、アプリケーションは何も実行する必要はありません。
MESessionTopologyStatus トポロジの状態が変わると、さまざまなタイミングで発生します。

 

IMFMediaSession::Shutdown メソッドはイベントを発生しません。 Shutdown メソッドは同期的です。 このメソッドが戻った後は、イベント コールバック ポインターを解放しても安全です。

アプリケーションは、メディア セッションからのイベントに加えて、トポロジ内のメディア シンクからイベントを受信する場合があります。 これらは、任意のデータを含む可能性があるメディア シンクによって定義されるカスタム イベントです。 たとえば、シンクは、信頼されていない外部ソースから発生する可能性があるソース データからイベント データを派生させる場合があります。 アプリケーションでは、認識されないイベントは無視し、イベント データを解析するときは注意が必要です。

メディア セッション