次の方法で共有


タイムライン オブジェクトの作成

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

[この API はサポートされていないため、今後変更または使用できない可能性があります。]

この記事で示すサンプル コードは、空のタイムラインから始まりますが、既存のプロジェクトを読み込んでオブジェクトを追加する場合も同じ手順が適用されます。

タイムラインで任意の種類のオブジェクトを作成するには、IAMTimeline::CreateEmptyNode メソッドを呼び出します。 たとえば、次のコードは新しいグループを作成します。

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

2 番目のパラメーターは、 TIMELINE_MAJOR_TYPE 列挙体のメンバーです。 グループやトラックなど、作成タイムラインオブジェクトの種類を指定します。

CreateEmptyNode メソッドは、 オブジェクトを作成し、オブジェクトの IAMTimelineObj インターフェイスへのポインターを返します。 また、 IAMTimelineObj インターフェイスの参照カウントもインクリメントされるため、インターフェイスの使用が完了したら解放する必要があります。 CoCreateInstance 関数を呼び出さないでください。 代わりに、createEmptyNode を使用してタイムライン オブジェクトを作成します。これは、タイムラインで使用するために新しいオブジェクトを初期化するためです。

IAMTimelineObj インターフェイスは汎用インターフェイスです。 すべての種類の タイムライン オブジェクトに共通するメソッドを提供します。 オブジェクトの各型は、他のインターフェイスも公開します。 たとえば、グループは IAMTimelineGroup インターフェイスなどを公開します。 QueryInterface を呼び出すことで、他のインターフェイスへのポインターを取得できます。

オブジェクトを作成した後は、まだタイムラインの一部ではありません。 タイムラインにオブジェクトを追加するメソッドは、オブジェクトの種類によって異なります。 次のセクションでは、グループ、コンポジション、トラックをタイムラインに追加する方法について説明します。

タイムラインの構築