共用方式為


IMFSourceReader::SetStreamSelection 方法 (mfreadwrite.h)

選取或取消選取一或多個數據流。

語法

HRESULT SetStreamSelection(
  [in] DWORD dwStreamIndex,
  [in] BOOL  fSelected
);

參數

[in] dwStreamIndex

要設定的數據流。 此值可以是下列任一項。

意義
0–0xFFFFFFFB
數據流以零起始的索引。
MF_SOURCE_READER_FIRST_VIDEO_STREAM
0xFFFFFFFC
第一個視訊串流。
MF_SOURCE_READER_FIRST_AUDIO_STREAM
0xFFFFFFFD
第一個音訊數據流。
MF_SOURCE_READER_ALL_STREAMS
0xFFFFFFFE
所有數據流。

[in] fSelected

指定 TRUE 以選取數據流,或指定 FALSE 來取消選取數據流。 如果取消選取數據流,則不會產生數據。

傳回值

如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

此方法有兩個常見的用法:

  • 若要變更預設數據流選取專案。 某些媒體檔案包含相同類型的多個數據流。 例如,檔案可能包含多種語言的音訊數據流。 您可以使用這個方法來變更選取的數據流。 若要取得每個數據流的相關信息,請呼叫 IMFSourceReader::GetPresentationAttributeIMFSourceReader::GetNativeMediaType
  • 如果您不需要來自其中一個數據流的數據,最好取消選取該數據流。 如果選取數據流,媒體來源可能會保留到未讀取數據的佇列,而佇列可能會無限期地成長,而耗用記憶體。
如需取消選取數據流的範例,請參閱 教學課程:譯碼音訊

如果取消選取數據流, IMFSourceReader::ReadSample 方法會傳回該數據流 的MF_E_INVALIDREQUEST 。 其他 IMFSourceReader 方法對已取消選取的數據流有效。

Stream 選取不會影響來源讀取器在記憶體中載入或卸除譯碼器的方式。 特別是,取消選取數據流並不會強制來源讀取器卸除該數據流的譯碼器。

如果已安裝適用於 Windows Vista 的平臺更新補充,則此介面可在 Windows Vista 上使用。

規格需求

需求
最低支援的用戶端 適用於 Windows Vista 的 Windows 7、Windows Vista 和平臺更新補充 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 mfreadwrite.h

另請參閱

IMFSourceReader

來源讀取器