다음을 통해 공유


그룹 컴퍼지션 및 트랙 만들기

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngineMedia Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

[이 API는 지원되지 않으며 나중에 변경되거나 사용할 수 없습니다.]

그룹, 컴퍼지션 및 트랙은 타임라인 원본 클립 사이의 중간 계층입니다. 포함할 수 있는 개체의 형식으로 구분됩니다.

  • 트랙에는 원본 개체가 포함되어 있습니다.
  • 컴퍼지션에는 트랙 및 기타 컴퍼지션이 포함되지만 원본 개체는 포함되지 않습니다.
  • 그룹은 최상위 컴퍼지션입니다. 그룹에는 컴퍼지션과 트랙이 포함되어 있지만 컴퍼지션에는 그룹을 포함할 수 없습니다.
  • 가상 트랙은 컴퍼지션 또는 그룹 내에 상주할 수 있는 모든 개체입니다. 여기에는 트랙 및 컴퍼지션이 포함됩니다.

이러한 개체는 다음 인터페이스를 노출합니다.

인터페이스 노출 기준
IAMTimelineTrack tracks
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에 대한 두 번째 매개 변수는 가상 트랙의 우선 순위를 지정합니다. 우선 순위 수준은 0부터 시작합니다. 값 –1을 지정하면 가상 트랙이 우선 순위 목록의 끝에 삽입됩니다. 이미 가상 트랙이 있는 값을 지정하면 해당 시점의 모든 항목이 목록 아래로 한 우선 순위 수준으로 이동합니다. 정의되지 않은 동작이 발생하므로 가상 트랙 수를 초과하는 우선 순위에 가상 트랙을 삽입하지 마세요.

타임라인 개체를 영구적으로 삭제하려면 개체에서 IAMTimelineObj::RemoveAll을 호출합니다. 이 메서드는 개체와 모든 자식을 제거합니다. 개체를 타임라인 다른 곳에 다시 삽입하기 위해 개체를 제거하려면 IAMTimelineObj::Remove를 대신 호출합니다. RemoveAll과 달리 이 메서드는 개체의 자식을 삭제하지 않습니다. 타임라인 모든 항목을 제거하려면 IAMTimeline::ClearAllGroups를 호출합니다.

타임라인 생성