Nastavit indexer
[Funkce přidružená k této stránce, Windows Media Format 11 SDK, je starší funkce. Byla nahrazena čtečkou zdroje a zapisovače jímky. čítač zdroje a zapisovač výstupu jsou optimalizované pro Windows 10 a Windows 11. Microsoft důrazně doporučuje, aby nový kód používal Čtečka zdrojů a Zapisovač výstupu místo Windows Media Format 11 SDK, pokud je to možné. Microsoft navrhuje, aby se stávající kód, který používá starší rozhraní API, přepsal, aby se nová rozhraní API používala, pokud je to možné.]
Před použitím indexeru můžete indexer nakonfigurovat k indexování souboru ASF. Každý datový proud v souboru lze nakonfigurovat samostatně nebo můžete nastavit stejnou konfiguraci pro všechny datové proudy.
Pokud konfigurujete více proudů pro indexování v souboru, musíte je všechny nakonfigurovat a poté začít indexovat. Pokud nakonfigurujete a indexujete datový proud a potom nakonfigurujete jiný datový proud ve stejném souboru, spuštění indexeru znovu odstraní první index. To je v souladu s formátem souborů ASF.
Následující kód ukazuje, jak nakonfigurovat indexer. Kód předpokládá, že soubor, který se má indexovat, má dva streamy: první je zvukový stream, který není potřeba indexovat, a druhý je stream videa. Tento kód ukazuje, jak nakonfigurovat indexer. Chcete-li indexovat soubor, musíte postupovat podle kroků uvedených v Indexování souboru 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;
Poznámka
Výchozí typ indexu je WMT_IT_NEAREST_CLEAN_POINT. I když můžete typ indexu nastavit na jiné hodnoty, sníží se tím výkon hledání.
Související témata