共用方式為


IMFASFMultiplexer::P rocessSample 方法 (wmcontainer.h)

將輸入範例傳遞至多任務器。

語法

HRESULT ProcessSample(
  [in] WORD      wStreamNumber,
  [in] IMFSample *pISample,
  [in] LONGLONG  hnsTimestampAdjust
);

參數

[in] wStreamNumber

樣本所屬數據流的數據流編號。

[in] pISample

輸入範例之 IMFSample 介面的指標。 輸入範例包含要轉換成 ASF 資料封包的媒體數據。 可能的話,此範例的時間戳應該是正確的。

[in] hnsTimestampAdjust

要套用至範例時間戳的調整。 如果呼叫端想要在 pISample 上移動取樣時間,就會使用此參數。 如果應該事先推送時間戳,則此值應該是正數,如果應該推送時間戳,則為負值。 這個時間戳會新增至 pISample 上的取樣時間,而且多任務器會使用產生的時間,而不是原始取樣時間。 如果不需要調整,請將此值設定為 0。

傳回值

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

傳回碼 描述
S_OK
此方法已成功。
MF_E_NOTACCEPTING
等候從多任務器擷取太多封包。 呼叫 IMFASFMultiplexer::GetNextPacket 以取得封包。
MF_E_BANDWIDTH_OVERRUN
已處理的範例違反 ASF ContentInfo 物件中數據流所指定的頻寬限制。 產生此錯誤時,會卸除範例。
MF_E_INVALIDSTREAMNUMBER
在 wStreamNumber 中傳遞的值無效。
MF_E_LATE_SAMPLE
輸入媒體範例的呈現時間早於傳送時間。

備註

應用程式會將範例傳遞至 ProcessSample,而 ASF 多任務器會在內部排入佇列,直到準備好放入 ASF 封包為止。 呼叫 IMFASFMultiplexer::GetNextPacket 以取得 ASF 數據封包。

每次呼叫 ProcessSample 之後,請在迴圈中呼叫 GetNextPacket 以取得所有可用的數據封包。 如需程式代碼範例,請參閱 產生新的 ASF 數據封包

規格需求

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

另請參閱

產生新的 ASF 數據封包

IMFASFMultiplexer

IMFSample