그룹 컴퍼지션 및 트랙 만들기
[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine 및 오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
[이 API는 지원되지 않으며 나중에 변경되거나 사용할 수 없습니다.]
그룹, 컴퍼지션 및 트랙은 타임라인 원본 클립 사이의 중간 계층입니다. 포함할 수 있는 개체의 형식으로 구분됩니다.
- 트랙에는 원본 개체가 포함되어 있습니다.
- 컴퍼지션에는 트랙 및 기타 컴퍼지션이 포함되지만 원본 개체는 포함되지 않습니다.
- 그룹은 최상위 컴퍼지션입니다. 그룹에는 컴퍼지션과 트랙이 포함되어 있지만 컴퍼지션에는 그룹을 포함할 수 없습니다.
- 가상 트랙은 컴퍼지션 또는 그룹 내에 상주할 수 있는 모든 개체입니다. 여기에는 트랙 및 컴퍼지션이 포함됩니다.
이러한 개체는 다음 인터페이스를 노출합니다.
인터페이스 | 노출 기준 |
---|---|
IAMTimelineTrack | tracks |
IAMTimelineVirtualTrack | 트랙, 컴퍼지션 |
IAMTimelineComp | 컴퍼지션, 그룹 |
IAMTimelineGroup | 그룹 |
이러한 인터페이스에는 타임라인 개체를 추가하는 메서드가 포함되어 있습니다.
- IAMTimeline::AddGroup: 그룹을 타임라인 삽입합니다.
- IAMTimelineComp::VTrackInsBefore: 컴퍼지션 또는 그룹에 가상 트랙을 삽입합니다.
- IAMTimelineTrack::SrcAdd: 원본을 트랙에 삽입합니다.
예를 들어 다음 코드는 그룹에 새 트랙을 삽입합니다. 이전 표와 같이 그룹은 일종의 컴퍼지션으로 간주되며 트랙은 일종의 가상 트랙입니다. 따라서 그룹에 트랙을 삽입하려면 해당 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를 호출합니다.
관련 항목