Criando objetos timeline

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

[Essa API não tem suporte e pode ser alterada ou indisponível no futuro.]

O código de exemplo apresentado neste artigo começa com uma linha do tempo vazia, mas as mesmas etapas se aplicam se você carregar um projeto existente e quiser adicionar objetos a ele.

Para criar qualquer tipo de objeto no linha do tempo, chame o método IAMTimeline::CreateEmptyNode. Por exemplo, o código a seguir cria um novo grupo:

IAMTimelineObj *pGroupObj = NULL;
pTL->CreateEmptyNode(&pGroupObj, TIMELINE_MAJOR_TYPE_GROUP);

O segundo parâmetro é um membro da enumeração TIMELINE_MAJOR_TYPE . Ele especifica o tipo de linha do tempo objeto a ser criado, como um grupo ou uma faixa.

O método CreateEmptyNode cria o objeto e retorna um ponteiro para a interface IAMTimelineObj do objeto. Ele também incrementa a contagem de referência na interface IAMTimelineObj , portanto, você deve liberar a interface quando terminar de usá-la. Não chame a função CoCreateInstance . Em vez disso, sempre use CreateEmptyNode para criar um objeto linha do tempo, pois inicializa o novo objeto para uso em um linha do tempo.

A interface IAMTimelineObj é uma interface genérica. Ele fornece métodos comuns a todos os tipos de objeto linha do tempo. Cada tipo de objeto também expõe outras interfaces. Por exemplo, os grupos expõem a interface IAMTimelineGroup , entre outros. Você pode obter ponteiros para as outras interfaces chamando QueryInterface.

Depois de criar um objeto, ele ainda não faz parte do linha do tempo. O método para adicionar um objeto ao linha do tempo depende do tipo de objeto. A seção a seguir descreve como adicionar grupos, composições e faixas à linha do tempo.

Construindo uma linha do tempo