新增來源
[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayer、IMFMediaEngine, 以及媒體基金會中的 音訊/視訊擷取所取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能在媒體 基礎中使用 MediaPlayer、IMFMediaEngine 和 音訊/視訊擷取,而不是 DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]
[此 API 不受支持,未來可能會改變或無法使用。]
建立來源物件的方式與建立其他時間軸物件的方式相同。 不過,在將它插入時間軸之前,您至少必須在來源上指定下列屬性。
- 相對於時間軸的開始和停止時間。 呼叫 IAMTimelineObj::SetStartStop 方法。
- 要作為來源使用的媒體檔案。 使用代表檔名的寬字元字串,呼叫 IAMTimelineSrc::SetMediaName 方法。
- 媒體的啟動和停止時間,相對於源檔。 呼叫 IAMTimelineSrc::SetMediaTimes 方法。 如需媒體時間的詳細資訊,請參閱 DirectShow Editing Services 中的時間。
在下列範例中,來源剪輯會在檔案開始後的四秒開始。 媒體持續時間為 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。
如需有關來源的更多資訊,請參閱 與來源合作。
相關主題