Freigeben über


So konfigurieren Sie den Indexer

[Das dieser Seite zugeordnete Feature Windows Media Format 11 SDK ist ein Legacyfeature. Sie wurde durch den Quellleser und den Senkenschreiber ersetzt. Quellleser und Senkenschreiber wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit den Quellleser und senkenden Writer anstelle des Windows Media Format 11 SDK verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Sie können den Indexer konfigurieren, bevor Sie ihn zum Indizieren einer ASF-Datei verwenden. Jeder Stream in der Datei kann separat konfiguriert werden, oder Sie können dieselbe Konfiguration für alle Streams festlegen.

Wenn Sie mehrere Dampfer für die Indizierung in einer Datei konfigurieren, müssen Sie sie alle konfigurieren und dann mit der Indizierung beginnen. Wenn Sie einen Stream konfigurieren und indizieren und dann einen anderen Stream in derselben Datei konfigurieren, wird der erste Index gelöscht, wenn der Indexer erneut gestartet wird. Dies entspricht dem ASF-Dateiformat.

Der folgende Code zeigt, wie Sie den Indexer konfigurieren. Der Code geht davon aus, dass die zu indizierte Datei über zwei Streams verfügt: Der erste ist ein Audiodatenstrom, der nicht indiziert werden muss, und der zweite ist ein Videostream. Dieser Code zeigt nur, wie der Indexer konfiguriert wird. Um eine Datei zu indizieren, müssen Sie die unter Indizieren einer ASF-Datei beschriebenen Schritte ausführen.

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;

Hinweis

Der Standardindextyp ist WMT_IT_NEAREST_CLEAN_POINT. Obwohl Sie den Indextyp auf andere Werte festlegen können, beeinträchtigt dies die Leistung der Suche.

 

IWMIndexer2::Configure

So indizieren Sie eine ASF-Datei

WMCreateIndexer

Arbeiten mit Indizes