在來源上設定屬性
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
[此 API 不受支援,未來可能會變更或無法使用。]
當您建立新的來源物件時,需要一些屬性才能設定,而您也可以選擇性地設定其他屬性。 您必須設定下列屬性。
- 相對於時間軸其餘部分的開始和停止時間。 呼叫 IAMTimelineObj::SetStartStop 方法。 請勿在相同追蹤中的來源物件上設定重迭時間,否則會導致未定義的行為。
- 要當做來源剪輯使用的媒體檔案。 呼叫 IAMTimelineSrc::SetMediaName。
- 相對於原始程式檔的媒體啟動和停止時間。 呼叫 IAMTimelineSrc::SetMediaTimes 方法。 例外狀況:如果來源仍是影像,請勿指定媒體時間。 如需媒體時間的詳細資訊,請參閱 DirectShow 編輯服務中的時間。
來源物件會從父群組繼承其媒體類型,因此不需要指定媒體類型。
選擇性屬性包括下列專案:
- 延展模式。 延展模式會指定 Microsoft® DirectShow® Editing Services (DES) 如何轉譯大小不符合輸出維度的來源。 根據預設,DES 會延展影像,而不會保留外觀比例。 或者,DES 可以裁剪影像或建立信箱。 呼叫 IAMTimelineSrc::SetStretchMode 方法來指定延展模式。
- 原始程式檔的持續時間。 如果您在設定媒體時間之前設定此屬性,DES 會驗證媒體停止時間,並在超過檔案持續時間時截斷停止時間。 這有助於避免稍後的轉譯錯誤。 您可以使用媒體偵測器取得檔案的持續時間,如 使用媒體偵測器中所述。 呼叫 IAMTimelineSrc::SetMediaLength 方法來指定檔案持續時間。
- 資料流程編號。 根據預設,來源物件會使用符合父群組媒體類型之檔案中的第一個資料流程。 如果檔案包含相同媒體類型的兩個或多個資料流程,請呼叫 IAMTimelineSrc::SetStreamNumber來選取要使用的資料流程。 您可以使用媒體偵測器來尋找資料流程數目。
相關主題