IMFByteStreamBuffering インターフェイス (mfidl.h)
バイト ストリームがネットワークからのデータをバッファーする方法を制御します。
このインターフェイスへのポインターを取得するには、バイト ストリーム オブジェクトで QueryInterface を呼び出します。
継承
IMFByteStreamBuffering インターフェイスは、IUnknown インターフェイスから継承されます。 IMFByteStreamBuffering には、次の種類のメンバーもあります。
メソッド
IMFByteStreamBuffering インターフェイスには、これらのメソッドがあります。
IMFByteStreamBuffering::EnableBuffering バッファリングを有効または無効にします。 |
IMFByteStreamBuffering::SetBufferingParams バッファリング パラメーターを設定します。 |
IMFByteStreamBuffering::StopBuffering 進行中のバッファリングを停止します。 |
注釈
バイト ストリームがこのインターフェイスを実装している場合、メディア ソースはそれを使用して、バイト ストリームがデータをバッファーする方法を制御できます。 このインターフェイスは、ネットワークからデータを読み取るバイト ストリーム用に設計されています。
このインターフェイスを実装するバイト ストリームでは、 IMFMediaEventGenerator インターフェイスも実装する必要があります。 バイト ストリームがバッファリングを開始すると、 MEBufferingStarted イベントが送信されます 。 バッファリングを停止すると、 MEBufferingStopped イベントが送信されます。
バイト ストリームは、MEBufferingStarted イベントごとに一致する MEBufferingStopped イベント を送信する 必要があります。 メディア ソースが値 TRUE で EnableBuffering を呼び出してバッファリングを有効にしていない限り、バイト ストリームは MEBufferingStarted イベントを送信しないでください。
バイト ストリームが MEBufferingStarted イベントを送信した 後、次のいずれかが発生した場合は MEBufferingStopped を送信する必要があります。
- バイト ストリームはデータのバッファリングを終了します。
- バイト ストリームはストリームの末尾に到達します。
- メディア ソースは、値 FALSEを指定して EnableBuffering を呼び出します。
- メディア ソースは StopBuffering を呼び出します。
バッファリングが無効になっている場合、バイト ストリームはバッファリング イベントを送信しません。 ただし、内部的には、I/O 要求の完了を待機している間もデータがバッファーに格納される可能性があります。 したがって、 IMFByteStream メソッドの完了には無期限の時間がかかる場合があります。
バイト ストリームが内部的にデータをバッファリングしていて、メディア ソースが値 TRUEで EnableBuffering を呼び出す場合、バイト ストリームは MEBufferingStarted をすぐに送信できます。
プレゼンテーションが開始されると、メディア ソースは、開始時に受信 した MEBufferingStarted イベントと MEBufferingStopped イベントを転送する必要があります。 メディア セッションでは、バッファリングの進行状況中にプレゼンテーション クロックが一時停止され、バッファリングが完了するとプレゼンテーション クロックが再起動されます。 メディア ソースは、プレゼンテーションの再生中にのみこれらのイベントを転送する必要があります。 これらのイベントをメディア セッションに送信する目的は、ソースがデータをバッファーしている間にプレゼンテーション時間を一時停止することです。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | mfidl.h |