Erstellen von Gruppenkompositionen und Spuren
[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]
[Diese API wird nicht unterstützt und kann in Zukunft geändert oder nicht mehr verfügbar sein.]
Gruppen, Kompositionen und Spuren sind die Zwischenebenen zwischen den Zeitleiste und den Quellclips. Sie unterscheiden sich durch den Typ des Objekts, das sie enthalten können.
- Spuren enthalten Quellobjekte.
- Kompositionen enthalten Spuren und andere Kompositionen, aber keine Quellobjekte.
- Gruppen sind Kompositionen auf oberster Ebene. Gruppen enthalten Kompositionen und Spuren, aber Kompositionen dürfen keine Gruppen enthalten.
- Eine virtuelle Spur ist ein beliebiges Objekt, das sich in einer Komposition oder Gruppe befinden kann. Dies umfasst Tracks und Kompositionen.
Diese Objekte machen die folgenden Schnittstellen verfügbar:
Schnittstelle | Verfügbar gemacht von |
---|---|
IAMTimelineTrack | Spuren |
IAMTimelineVirtualTrack | Tracks, Kompositionen |
IAMTimelineComp | Kompositionen, Gruppen |
IAMTimelineGroup | Gruppen |
Diese Schnittstellen enthalten die Methoden zum Hinzufügen von Objekten zum Zeitleiste.
- IAMTimeline::AddGroup: Fügt eine Gruppe in die Zeitleiste ein.
- IAMTimelineComp::VTrackInsBefore: Fügt eine virtuelle Spur in eine Komposition oder Gruppe ein.
- IAMTimelineTrack::SrcAdd: Fügt eine Quelle in eine Spur ein.
Der folgende Code fügt beispielsweise eine neue Spur in eine Gruppe ein. Wie in der vorherigen Tabelle gezeigt, wird eine Gruppe als eine Art Komposition betrachtet, und ein Track ist eine Art virtueller Track. Um die Spur in die Gruppe einzufügen, müssen Sie daher die Gruppe nach ihrer IAMTimelineComp-Schnittstelle abfragen und die IAMTimelineComp::VTrackInsBefore-Methode aufrufen.
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);
Der zweite Parameter für VTrackInsBefore gibt die Priorität der virtuellen Spur an. Prioritätsebenen beginnen bei 0. Wenn Sie den Wert –1 angeben, wird die virtuelle Spur am Ende der Prioritätsliste eingefügt. Wenn Sie einen Wert angeben, bei dem bereits eine virtuelle Spur vorhanden ist, wird alles von diesem Punkt an um eine Prioritätsebene nach unten verschoben. Fügen Sie eine virtuelle Spur nicht mit einer Priorität ein, die größer ist als die Anzahl der virtuellen Spuren, da dies zu nicht definiertem Verhalten führt.
Um ein Objekt dauerhaft aus dem Zeitleiste zu löschen, rufen Sie IAMTimelineObj::RemoveAll für das Objekt auf. Diese Methode entfernt das Objekt und alle untergeordneten Elemente. Rufen Sie stattdessen IAMTimelineObj::Remove auf, um ein Objekt zu entfernen, um es an anderer Stelle im Zeitleiste erneut auszuführen. Im Gegensatz zu RemoveAll löscht diese Methode die untergeordneten Elemente des Objekts nicht. Um alles aus dem Zeitleiste zu entfernen, rufen Sie IAMTimeline::ClearAllGroups auf.
Zugehörige Themen