インデックスの使用

[このページに関連付けられている機能である Windows Media Format 11 SDK は、従来の機能です。 ソース リーダーシンク ライターに置き換わりました。 ソース リーダーシンク ライターは、Windows 10とWindows 11用に最適化されています。 Microsoft では、可能であれば、新しいコードで Windows Media Format 11 SDK ではなくソース リーダーシンク ライターを使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]

Windows Media Format SDK では、コンテンツのシークとストライディングがサポートされています。 シークを使用すると、ファイルのタイムライン上で再生を開始する場所を指定できます。 Striding を使用すると、ファイルの出力をfast-forwardして巻き戻します。 これらの機能を利用するには、ファイルのインデックスを作成する必要があります。 インデックスは、ファイル内の位置 (プレゼンテーション時間、フレーム番号、または SMTPE タイム コード) を表す一連の値で、それぞれのファイルのデータ セクションに対応するオフセットが含まれます。 オーディオ ストリームのプレゼンテーション時間は簡単に見積もることができるため、インデックス作成はビデオ ストリームにとって最も重要です。 ただし、一部のオーディオ ストリームではインデックスも必要になる場合があります。 既定では、ライターは新しい ASF ファイルごとにインデックスを作成します。 ファイルの内容に変更が加えられた場合は、インデクサー オブジェクトを使用して自分でインデックスを更新する必要があります。

インデクサーでは、テンポラルインデックスとフレームベースのインデックス作成と、SMPTE タイム コードに基づくインデックス作成 (存在する場合) の両方がサポートされます。 ライターは、ファイルにエンコードされた新しいビデオ ストリームごとに、既定でテンポラル インデックスを作成します。 フレーム ベースまたは SMPTE タイム コード インデックスを作成するには、インデクサーを明示的に構成して呼び出す必要があります。

ASF ファイルの内容に変更を加えた場合は、再度インデックスを作成する必要があります。

次のセクションでは、一般的なインデックス作成タスクを実行するためのコード例を示します。

さらに、DSCopy サンプル アプリケーションは、インデクサーの使用を示しています。 詳細については、「 サンプル アプリケーション」を参照してください。