IMFRateControl::SetRate 方法 (mfidl.h)

設定播放速率。

語法

HRESULT SetRate(
  [in] BOOL  fThin,
  [in] float flRate
);

參數

[in] fThin

如果 為 TRUE,則會精簡媒體串流。 否則,資料流程不會精簡。 對於媒體來源和解構器,當此參數為 TRUE時,物件必須精簡資料流程。 對於下游轉換,例如解碼器和多工器,此參數具有參考性;它會通知物件輸入資料流程已精簡。 如需詳細資訊,請參閱 關於速率控制

[in] flRate

要求的播放速率。 正值表示正向播放、負值表示反向播放,而零表示來源 (傳送單一畫面格) 。

傳回值

方法會傳回 HRESULT。 可能的值包括 (但不限於) 下表中的這些值。

傳回碼 描述
S_OK
此方法已成功。
MF_E_REVERSE_UNSUPPORTED
物件不支援反向播放。
MF_E_THINNING_UNSUPPORTED
物件不支援精簡。
MF_E_UNSUPPORTED_RATE
物件不支援要求的播放速率。
MF_E_UNSUPPORTED_RATE_TRANSITION
物件在處於執行中狀態時,無法變更為新的速率。

備註

媒體會話會根據目前的播放狀態,防止速率界限之間的某些轉換:

播放狀態 正向/反向 正向/零 反向/零
執行中
已暫停
已停止
 

如果不支援轉換,此方法會 傳回MF_E_UNSUPPORTED_RATE_TRANSITION

當媒體來源完成 對 SetRate的呼叫時,它會傳送 MESourceRateChanged 事件。 其他管線元件不會傳送此事件。

如果媒體來源在精簡播放和非精簡播放之間切換,串流會傳送 MEStreamThinMode 事件來指出轉換。 來自媒體來源的事件不會與來自媒體資料流程的事件同步處理。 收到 MESourceRateChanged 事件之後,您仍然可以在串流切換為精簡或非精簡模式之前收到已排入佇列的樣本。 MEStreamThinMode 事件會標示轉換發生所在資料流程中的確切點。

當媒體會話完成 對 SetRate的呼叫時,它會傳送 MESessionRateChanged 事件。

需求

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

另請參閱

如何在媒體會話上設定播放速率

IMFRateControl