共用方式為


創作群組組合和音軌

[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngine以及媒體基金會中的音訊/視訊擷取 取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能在媒體 基礎中使用 MediaPlayerIMFMediaEngine 音訊/視訊擷取,而不是 DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]

[此 API 不受支持,未來可能會改變或無法使用。]

群組、組合和曲目是時間軸與來源剪輯之間的中繼層。 它們會依可包含的物件類型來區別。

  • 軌道包含來源物件。
  • 組合包含曲目和其他組合,但不包含來源物件。
  • 群組是最上層組合。 群組包含作品和曲目,但作品不能包含群組。
  • 虛擬軌道 是可位於作品或群組中的任何物件。 這包括曲目和組合。

這些物件會公開下列介面:

介面 揭露者
IAMTimelineTrack 軌道
IAMTimelineVirtualTrack 曲目、組合
IAMTimelineComp 組合、群組
IAMTimelineGroup 群組

 

這些介面包含將物件新增至時程表的方法。

例如,下列程式代碼會將新的曲目插入群組中。 如上表所示,群組被視為一種組成,而追蹤是一種虛擬追蹤。因此,若要將追蹤插入群組中,您必須查詢群組的 IAMTimelineComp 介面,並呼叫 IAMTimelineComp::VTrackInsBefore 方法。

IAMTimelineGroup    *pGroup;
// Create a new group (not shown). 

IAMTimelineComp     *pComp = NULL;
IAMTimelineObj      *pTrackObj = NULL;

pTL->CreateEmptyNode(&pTrackObj, TIMELINE_MAJOR_TYPE_TRACK);
pGroup->QueryInterface(IID_IAMTimelineComp, (void **)&pComp);
pComp->VTrackInsBefore(pTrackObj, 0);

VTrackInsBefore 的第二個參數 制定虛擬播放軌的優先權。優先層級從零開始。 如果您指定值 –1,則會在優先順序清單的結尾插入虛擬軌道。 如果您指定一個數值,而該處已有虛擬軌道,則從該點開始的所有項目會在列表中優先級下降一級。 請勿將虛擬軌道插入優先順序大於虛擬軌道數量的位置,因為這會導致未定義的行為。

若要從時程表永久刪除物件,請在 物件上呼叫 IAMTimelineObj::RemoveAll。 這個方法會移除物件及其所有子系。 若要移除物件,以便重新插入時間軸中的其他地方,請改為呼叫 IAMTimelineObj::Remove。 不同於 RemoveAll,此方法不會刪除物件的子系。 若要從時程表中移除所有專案,請呼叫 IAMTimeline::ClearAllGroups

建構時間軸