Para configurar el indexador
[La característica asociada a esta página, SDK de Windows Media Format 11, es una característica heredada. Se ha reemplazado por lector de origen y escritor receptor. El lector de origen y el sistema de escritura receptor se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use lector de origen y escritor receptor en lugar del SDK de Windows Media Format 11, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.
Puede configurar el indexador antes de usarlo para indexar un archivo ASF. Cada secuencia del archivo se puede configurar por separado o puede establecer la misma configuración para todas las secuencias.
Si va a configurar varios vapores para la indexación en un archivo, debe configurarlos todos y, a continuación, comenzar la indexación. Si configura e indexa una secuencia y, a continuación, configura otra secuencia en el mismo archivo, al iniciar de nuevo el indexador se eliminará el primer índice. Esto es para cumplir con el formato de archivo ASF.
En el código siguiente se muestra cómo configurar el indexador. El código supone que el archivo que se va a indexar tiene dos secuencias: la primera es una secuencia de audio que no es necesario indexar y la segunda es una secuencia de vídeo. Este código muestra solo cómo configurar el indexador. Para indexar un archivo, debe seguir los pasos que se presentan en Indización de un archivo 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:
El tipo de índice predeterminado es WMT_IT_NEAREST_CLEAN_POINT. Aunque puede establecer el tipo de índice en otros valores, si lo hace, se degradará la búsqueda del rendimiento.
Temas relacionados