Bagikan melalui


Untuk Mengonfigurasi Pengindeks

[Fitur yang terkait dengan halaman ini, Windows Media Format 11 SDK , adalah fitur warisan. Ini telah digantikan oleh Pembaca Sumber dan Penulis Sink. Pembaca Sumber dan Penulis Sink telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan Pembaca Sumber dan Sink Writer alih-alih Windows Media Format 11 SDK , jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Anda dapat mengonfigurasi pengindeks sebelum menggunakannya untuk mengindeks file ASF. Setiap aliran dalam file dapat dikonfigurasi secara terpisah, atau Anda dapat mengatur konfigurasi yang sama untuk semua aliran.

Jika Anda mengonfigurasi beberapa aliran untuk pengindeksan dalam file, Anda harus mengonfigurasi semuanya kemudian mulai mengindeks. Jika Anda mengonfigurasi dan mengindeks aliran lalu mengonfigurasi aliran lain dalam file yang sama, memulai pengindeks lagi akan menghapus indeks pertama. Ini untuk mematuhi format file ASF.

Kode berikut menunjukkan cara mengonfigurasi pengindeks. Kode mengasumsikan bahwa file yang akan diindeks memiliki dua aliran: yang pertama adalah aliran audio yang tidak perlu diindeks, dan yang kedua adalah aliran video. Kode ini hanya menunjukkan cara mengonfigurasi pengindeks. Untuk mengindeks file, Anda harus mengikuti langkah-langkah yang disajikan dalam Untuk Mengindeks File ASF.

IWMIndexer*  pBaseIndexer = NULL;
IWMIndexer2* pMyIndexer   = NULL;

DWORD          dwInterval;
HRESULT hr = S_OK;

// Initialize COM.
hr = CoInitialize(NULL);

// Create an indexer.
hr = WMCreateIndexer(&pBaseIndexer);

// Retrieve an IWMIndexer2 interface pointer for the indexer just created.
hr = pBaseIndexer->QueryInterface(IID_IWMIndexer2, (void**)&pMyIndexer);

// Release the base indexer.
pBaseIndexer->Release();
pBaseIndexer = NULL;

// Set the index interval to 5 frames.
dwInterval = 5;

// Configure the indexer to create a frame-based index.
hr = pMyIndexer->Configure(2,                    // Stream Number.
                           WMT_IT_FRAME_NUMBERS, // Indexer type.
                           (void *)&dwInterval,  // Index interval.
                           NULL;        // Index type, use default.

// TODO: Index the file. See To Index an ASF File.

// Release the remaining interface.
pMyIndexer->Release();
pMyIndexer = NULL;

Nota

Jenis indeks default adalah WMT_IT_NEAREST_CLEAN_POINT. Meskipun Anda dapat mengatur jenis indeks ke nilai lain, melakukannya akan menurunkan performa pencarian.

 

IWMIndexer2::Konfigurasikan

Untuk Mengindeks File ASF

WMCreateIndexer

Bekerja dengan Indeks