Partager via


Pour configurer l’indexeur

[La fonctionnalité associée à cette page, le Kit de développement logiciel (SDK) Windows Media Format 11, est une fonctionnalité héritée. Il a été remplacé par lecteur source et enregistreur récepteur. Le lecteur source et l’enregistreur récepteur ont été optimisés pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise le lecteur source et l’enregistreur récepteur au lieu du Kit de développement logiciel (SDK) Windows Media Format 11, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Vous pouvez configurer l’indexeur avant de l’utiliser pour indexer un fichier ASF. Chaque flux du fichier peut être configuré séparément, ou vous pouvez définir la même configuration pour tous les flux.

Si vous configurez plusieurs steams pour l’indexation dans un fichier, vous devez les configurer toutes, puis commencer l’indexation. Si vous configurez et indexez un flux, puis configurez un autre flux dans le même fichier, le démarrage de l’indexeur supprime le premier index. Il s’agit de respecter le format de fichier ASF.

Le code suivant montre comment configurer l’indexeur. Le code suppose que le fichier à indexer a deux flux : le premier est un flux audio qui n’a pas besoin d’être indexé, et le second est un flux vidéo. Ce code montre uniquement comment configurer l’indexeur. Pour indexer un fichier, vous devez suivre les étapes présentées dans Pour indexer un fichier 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;

Notes

Le type d’index par défaut est WMT_IT_NEAREST_CLEAN_POINT. Bien que vous puissiez définir le type d’index sur d’autres valeurs, cela dégradera les performances de recherche.

 

IWMIndexer2::Configure

Pour indexer un fichier ASF

WMCreateIndexer

Utilisation des index