新增來源
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
[此 API 不受支援,未來可能會變更或無法使用。]
建立來源物件的方式與建立其他時程表物件的方式相同。 不過,在將它插入時程表之前,您必須至少在來源上指定下列屬性。
- 相對於時間軸的開始和停止時間。 呼叫 IAMTimelineObj::SetStartStop 方法。
- 要當做來源使用的媒體檔案。 使用代表檔案名的寬字元字串,呼叫 IAMTimelineSrc::SetMediaName 方法。
- 媒體啟動和停止時間,相對於原始檔案。 呼叫 IAMTimelineSrc::SetMediaTimes 方法。 如需媒體時間的詳細資訊,請參閱 DirectShow 編輯服務中的時間。
在下列範例中,來源剪輯會在檔案中啟動四秒。 媒體持續時間為 10 秒,時間軸持續時間的長度兩倍,這表示來源會以兩倍的正常速度播放。 常數 UNITS 定義為 100000000 (10^7) ,且等於一秒。
pSourceObj->SetStartStop(0, 50000000)
BSTR bstrFile = SysAllocStringLen(OLESTR("C:\\example.avi"), 15);
pSource->SetMediaName(bstrFile);
SysFreeString(bstrFile);
pSource->SetMediaTimes(40000000, 140000000);
注意
目前,DES 無法同時轉譯超過 75 個使用影片壓縮管理員壓縮的來源, (VCM) 編解碼器。 此外,如果整個專案包含超過 75 個這類來源,您必須使用動態重新連線或 DES 無法預覽專案。 如需詳細資訊,請參閱 IRenderEngine::SetDynamicReconnectLevel。
如需來源的詳細資訊,請參閱 使用來源。
相關主題