IMFSourceReader::SetStreamSelection 方法 (mfreadwrite.h)
選取或取消選取一或多個數據流。
語法
HRESULT SetStreamSelection(
[in] DWORD dwStreamIndex,
[in] BOOL fSelected
);
參數
[in] dwStreamIndex
要設定的數據流。 此值可以是下列任一項。
值 | 意義 |
---|---|
|
數據流以零起始的索引。 |
|
第一個視訊串流。 |
|
第一個音訊數據流。 |
|
所有數據流。 |
[in] fSelected
指定 TRUE 以選取數據流,或指定 FALSE 來取消選取數據流。 如果取消選取數據流,則不會產生數據。
傳回值
如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。
備註
此方法有兩個常見的用法:
- 若要變更預設數據流選取專案。 某些媒體檔案包含相同類型的多個數據流。 例如,檔案可能包含多種語言的音訊數據流。 您可以使用這個方法來變更選取的數據流。 若要取得每個數據流的相關信息,請呼叫 IMFSourceReader::GetPresentationAttribute 或 IMFSourceReader::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 |