ICaptureGraphBuilder2::AllocCapFile 方法 (strmif.h)
[與此頁面相關的功能 DirectShow 是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft 強烈建議新程式代碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式代碼盡可能重寫為使用新的 API。
方法 AllocCapFile
會將擷取檔案預先配置至指定的大小。 為了獲得最佳結果,請一律擷取到重組的預先配置擷取檔案,其大小大於擷取數據的大小。
語法
HRESULT AllocCapFile(
[in] LPCOLESTR lpstr,
[in] DWORDLONG dwlSize
);
參數
[in] lpstr
寬字元字串的指標,其中包含要建立或重設大小的檔名。
[in] dwlSize
要配置的檔案大小,以位元組為單位。
傳回值
如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。
備註
如果檔案是唯讀的,這個方法就會失敗。
最好盡可能配置空間,最好比需要更多。 不過,這可能會導致非常大型的檔案,其中包含相對較少的數據。 例如,1 GB (GB) 擷取檔案可能包含數 MB 的擷取影片。 使用 ICaptureGraphBuilder2::CopyCaptureFile 方法,將數據複製到新檔案中。 該方法只會複製數據,並忽略源檔的空白部分。
如果您使用這個方法來預先配置檔案,請在檔案寫入器篩選上呼叫 IFileSinkFilter2::SetMode ,其值為零。 如果篩選設定為 AM_FILE_OVERWRITE,則會刪除預先配置的檔案。 請注意,某些檔案寫入器篩選不支援模式 0。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | strmif.h (包含 Dshow.h) |
程式庫 | Strmiids.lib |