共用方式為


IGraphBuilder::RenderFile 方法 (strmif.h)

[與此頁面相關的功能 DirectShow 是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft 強烈建議新程式代碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式代碼盡可能重寫為使用新的 API。

方法 RenderFile 會建置可轉譯指定檔案的篩選圖形。

語法

HRESULT RenderFile(
  [in] LPCWSTR lpcwstrFile,
  [in] LPCWSTR lpcwstrPlayList
);

參數

[in] lpcwstrFile

指定包含媒體檔案名稱的寬字元字串。

[in] lpcwstrPlayList

保留的。 必須是 NULL

傳回值

傳回 HRESULT。 可能的值如下。

傳回碼 描述
S_OK
成功。
VFW_S_AUDIO_NOT_RENDERED
部分成功;音訊未轉譯。
VFW_S_DUPLICATE_NAME
成功;Filter Graph 管理員修改了篩選名稱以避免重複。
VFW_S_PARTIAL_RENDER
此影片中的部分串流格式不受支援。
VFW_S_VIDEO_NOT_RENDERED
部分成功;此影片中的部分串流格式不受支援。
E_ABORT
作業已中止。
E_FAIL
失敗。
E_INVALIDARG
自變數無效。
E_OUTOFMEMORY
記憶體不足。
E_POINTER
NULL 指標自變數。
VFW_E_CANNOT_CONNECT
找不到中繼篩選的組合來建立連線。
VFW_E_CANNOT_LOAD_SOURCE_FILTER
無法載入此檔案的來源篩選。
VFW_E_CANNOT_RENDER
找不到篩選條件的組合來轉譯數據流。
VFW_E_INVALID_FILE_FORMAT
檔案格式無效。
VFW_E_NOT_FOUND
找不到物件或名稱。
VFW_E_UNKNOWN_FILE_TYPE
無法辨識此檔案的媒體類型。
VFW_E_UNSUPPORTED_STREAM
無法播放檔案:不支援格式。

備註

如果 lpwstrFile 參數指定媒體檔案,此方法會建置篩選圖形以進行預設播放。 首先,它會使用與 IGraphBuilder::AddSourceFilter 方法相同的程式,新增可讀取檔案的來源篩選。 然後,它會在來源篩選上轉譯輸出針腳,並視需要新增中繼篩選。 它會以與 IGraphBuilder::Connect 方法相同的順序嘗試篩選。

在連線過程中,如果針腳名稱開頭為波浪線 (~) ,篩選圖形管理員會忽略中繼篩選上的針腳。 如需詳細資訊,請參閱 PIN_INFO

請注意, RenderFile 方法不會從圖形中移除任何篩選。 如果您呼叫兩次,第二個呼叫 RenderFile 只會將更多篩選新增至圖表。 當您執行圖形時,這兩個來源都會同時播放。

範例

下列範例會轉譯 AVI 檔案以進行預設播放:

C++
hr = pGraph->RenderFile(L"C:\\Media\\Example.avi", 0);
下列範例會使用檔案 來源 (URL) 篩選,透過 HTTP 下載 AVI 檔案:
C++
hr = pGraph->RenderFile(L"http://example.microsoft.com/Example.avi", 0);

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 strmif.h (包含 Dshow.h)
程式庫 Strmiids.lib

另請參閱

錯誤和成功碼

IGraphBuilder 介面