Share via


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 方法可能需要無限時間才能完成。

如果位元組數據流在內部緩衝數據,而媒體來源會呼叫 EnableBuffering 且值為 TRUE,則位元組數據流可以立即傳送 MEBufferingStarted

啟動簡報之後,媒體來源應該會轉送和 MEBufferingStartedMEBufferingStopped 事件,該事件會在啟動時接收。 媒體會話會在緩衝進行時暫停簡報時鐘,並在緩衝完成時重新啟動簡報時鐘。 媒體來源應該只在播放簡報時轉送這些事件。 傳送這些事件至媒體會話的目的是在來源緩衝區數據時暫停簡報時間。

規格需求

需求
最低支援的用戶端 Windows Vista [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 mfidl.h

另請參閱

IMFByteStream

IMFByteStreamCacheControl

媒體基礎介面