De indexeerfunctie configureren
[De functie die is gekoppeld aan deze pagina, Windows Media Format 11 SDK, is een verouderde functie. Het is vervangen door Source Reader en Sink Writer. Bronlezer en Sink Writer zijn geoptimaliseerd voor Windows 10 en Windows 11. Microsoft raadt ten zeerste aan om nieuwe code te gebruiken bronlezer en Sink Writer- in plaats van Windows Media Format 11 SDK, indien mogelijk. Microsoft stelt voor dat bestaande code die gebruikmaakt van de verouderde API's, indien mogelijk opnieuw worden geschreven om de nieuwe API's te gebruiken.]
U kunt de indexeerfunctie configureren voordat u deze gebruikt om een ASF-bestand te indexeren. Elke stream in het bestand kan afzonderlijk worden geconfigureerd of u kunt dezelfde configuratie instellen voor alle streams.
Als u meerdere streams configureert voor indexering in een bestand, moet u ze allemaal configureren en vervolgens beginnen met indexeren. Als u een stream configureert en indexeert en vervolgens een andere stream in hetzelfde bestand configureert, wordt de eerste index verwijderd door de indexeerfunctie opnieuw te starten. Dit is om te voldoen aan de ASF-bestandsindeling.
De volgende code laat zien hoe u de indexeerfunctie configureert. In de code wordt ervan uitgegaan dat het bestand dat moet worden geïndexeerd twee streams heeft: de eerste is een audiostream die niet hoeft te worden geïndexeerd en de tweede is een videostream. Deze code laat alleen zien hoe u de indexeerfunctie configureert. Als u een bestand wilt indexeren, moet u de stappen volgen die worden weergegeven in Een ASF-bestand indexeren.
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;
Notitie
Het standaardindextype is WMT_IT_NEAREST_CLEAN_POINT. Hoewel u het indextype kunt instellen op andere waarden, zullen hierdoor de zoekprestaties verminderen.
Verwante onderwerpen