共用方式為


IMFSourceReaderEx::SetNativeMediaType 方法 (mfreadwrite.h)

設定媒體來源上數據流的原生媒體類型。

語法

HRESULT SetNativeMediaType(
  [in]  DWORD        dwStreamIndex,
  [in]  IMFMediaType *pMediaType,
  [out] DWORD        *pdwStreamFlags
);

參數

[in] dwStreamIndex

[in] pMediaType

媒體類型 之 IMFMediaType 介面的指標。

[out] pdwStreamFlags

接收下列旗標的位 OR 為零或多個。

意義
MF_SOURCE_READERF_ALLEFFECTSREMOVED
所有效果都已從數據流中移除。
MF_SOURCE_READERF_CURRENTMEDIATYPECHANGED
目前的輸出類型已變更。

傳回值

這個方法可以傳回其中一個值。

傳回碼 描述
S_OK
成功。
MF_E_INVALIDREQUEST
無效的要求
MF_E_INVALIDSTREAMNUMBER
dwStreamIndex 參數無效。

備註

這個方法會設定媒體來源所產生的輸出類型。 不同於 IMFSourceReader::SetCurrentMediaType 方法,這個方法不會插入任何譯碼器、視訊處理器或其他轉換。 媒體來源必須原生支援指定的媒體類型。 若要從媒體來源取得支援的型別清單,請呼叫 IMFSourceReader::GetNativeMediaType

在異步模式中,如果範例要求擱置,這個方法就會失敗。 在此情況下,請先等候 OnReadSample 回呼叫用,再呼叫 方法。 如需在異步模式中使用來源讀取器的詳細資訊,請參閱 IMFSourceReader::ReadSample

這個方法可以觸發數據流輸出格式的變更。 如果是,則會在 pdwStreamFlags 參數中傳回MF_SOURCE_READERF_CURRENTMEDIATYPECHANGED旗標。 方法也可能造成來源讀取器移除 由IMFSourceReaderEx::AddTransformForStream 方法新增的任何效果。 如果發生這種情況,則會在 pdwStreamFlags 中傳回MF_SOURCE_READERF_ALLEFFECTSREMOVED旗標。

此方法適用於音訊和視訊擷取裝置,因為裝置可能支援數種輸出格式。 這個方法可讓應用程式在新增譯碼器和其他轉換之前選擇裝置格式。

規格需求

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

另請參閱

IMFSourceReaderEx