Compartir a través de


Crear objetos de escala de tiempo

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

[Esta API no se admite y puede modificarse o no estar disponible en el futuro].

El código de ejemplo presentado en este artículo comienza con una escala de tiempo vacía, pero se aplican los mismos pasos si carga un proyecto existente y desea agregar objetos a él.

Para crear cualquier tipo de objeto en la escala de tiempo, llame al método IAMTimeline::CreateEmptyNode . Por ejemplo, el código siguiente crea un nuevo grupo:

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

El segundo parámetro es un miembro de la enumeración TIMELINE_MAJOR_TYPE . Especifica el tipo de objeto de escala de tiempo que se va a crear, como un grupo o una pista.

El método CreateEmptyNode crea el objeto y devuelve un puntero a la interfaz IAMTimelineObj del objeto. También incrementa el recuento de referencias en la interfaz IAMTimelineObj , por lo que debe liberar la interfaz cuando termine de usarla. No llame a la función CoCreateInstance . En su lugar, use siempre CreateEmptyNode para crear un objeto timeline, ya que inicializa el nuevo objeto para su uso en una escala de tiempo.

La interfaz IAMTimelineObj es una interfaz genérica. Proporciona métodos que son comunes a todos los tipos de objeto de escala de tiempo. Cada tipo de objeto también expone otras interfaces. Por ejemplo, los grupos exponen la interfaz IAMTimelineGroup , entre otros. Puede obtener punteros a las demás interfaces llamando a QueryInterface.

Después de crear un objeto, aún no forma parte de la escala de tiempo. El método para agregar un objeto a la escala de tiempo depende del tipo de objeto. En la sección siguiente se describe cómo agregar grupos, composiciones y pistas a la escala de tiempo.

Construcción de una escala de tiempo