创建时间线对象

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

[此 API 不受支持,将来可能会更改或不可用。]

本文中提供的示例代码以空时间线开头,但如果加载现有项目并想要向其添加对象,则相同的步骤适用。

若要在时间线中创建任何类型的对象,请调用 IAMTimeline::CreateEmptyNode 方法。 例如,以下代码创建一个新组:

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

第二个参数是 TIMELINE_MAJOR_TYPE 枚举的成员。 它指定要创建的时间线对象的类型,例如组或轨迹。

CreateEmptyNode 方法创建 对象并返回指向对象的 IAMTimelineObj 接口的指针。 它还会递增 IAMTimelineObj 接口上的引用计数,因此必须在使用完接口后释放该接口。 请勿调用 CoCreateInstance 函数。 相反,请始终使用 CreateEmptyNode 创建时间线对象,因为它初始化新对象以用于时间线。

IAMTimelineObj 接口是泛型接口。 它提供了所有类型的时间线对象通用的方法。 每种类型的对象也会公开其他接口。 例如,组公开 IAMTimelineGroup 接口等。 可以通过调用 QueryInterface 获取指向其他接口的指针。

创建对象后,该对象还不是时间线的一部分。 将对象添加到时间线的方法取决于对象类型。 以下部分介绍如何向时间线添加组、合成和曲目。

构造时间线