So konfigurieren Sie den Indexer
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 Dünste 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 indiziere 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 der Indexer konfiguriert wird. Der Code geht davon aus, dass die zu indizierte Datei über zwei Streams verfügt: der erste ist ein Audiostream, der nicht indiziert werden muss, und der zweite ist ein Videostream. Dieser Code zeigt nur, wie der Indexer konfiguriert wird. Zum Indizierung einer Datei müssen Sie die Schritte unter Indizierung einer ASF-Dateiausfü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 Suchleistung.