Compartilhar via


Para configurar o indexador

[O recurso associado a esta página, Windows Media Format 11 SDK, é um recurso herdado. Ele foi substituído por Leitor de Origem e Gravador de Coletor. O Leitor de Origem e o Gravador do Coletor foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use o Leitor de Origem e o Gravador do Coletor em vez do SDK do Windows Media Format 11, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Você pode configurar o indexador antes de usá-lo para indexar um arquivo ASF. Cada fluxo no arquivo pode ser configurado separadamente ou você pode definir a mesma configuração para todos os fluxos.

Se você estiver configurando vários vapores para indexação em um arquivo, deverá configurá-los todos e, em seguida, começar a indexação. Se você configurar e indexar um fluxo e, em seguida, configurar outro fluxo no mesmo arquivo, iniciar o indexador novamente excluirá o primeiro índice. Isso é para estar em conformidade com o formato de arquivo ASF.

O código a seguir mostra como configurar o indexador. O código pressupõe que o arquivo a ser indexado tenha dois fluxos: o primeiro é um fluxo de áudio que não precisa ser indexado e o segundo é um fluxo de vídeo. Esse código mostra apenas como configurar o indexador. Para indexar um arquivo, você deve seguir as etapas apresentadas em Para indexar um arquivo 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;

Observação

O tipo de índice padrão é WMT_IT_NEAREST_CLEAN_POINT. Embora você possa definir o tipo de índice para outros valores, isso prejudicará a busca de desempenho.

 

IWMIndexer2::Configure

Para indexar um arquivo ASF

WMCreateIndexer

Trabalhando com índices