다음을 통해 공유


인덱서 구성

[이 페이지와 연결된 기능인 Windows Media Format 11 SDK는 레거시 기능입니다. 원본 판독기 및 싱크 작성기에 의해 대체되었습니다. 원본 판독기 및 싱크 작성기는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 Windows Media Format 11 SDK 대신 소스 판독기 및 싱크 작성기를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

ASF 파일을 인덱싱하는 데 사용하기 전에 인덱서를 구성할 수 있습니다. 파일의 각 스트림을 개별적으로 구성하거나 모든 스트림에 대해 동일한 구성을 설정할 수 있습니다.

파일에서 인덱싱을 위해 여러 Steam을 구성하는 경우 모두 구성한 다음 인덱싱을 시작해야 합니다. 스트림을 구성하고 인덱싱한 다음 동일한 파일에서 다른 스트림을 구성하면 인덱서가 다시 시작되면 첫 번째 인덱스가 삭제됩니다. ASF 파일 형식을 준수하기 위한 것입니다.

다음 코드에서는 인덱서 구성 방법을 보여줍니다. 코드는 인덱싱할 파일에 두 개의 스트림이 있다고 가정합니다. 첫 번째는 인덱싱할 필요가 없는 오디오 스트림이고 두 번째는 비디오 스트림입니다. 이 코드는 인덱서 구성 방법만 보여줍니다. 파일을 인덱싱하려면 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;

참고

기본 인덱스 형식은 WMT_IT_NEAREST_CLEAN_POINT. 인덱스 형식을 다른 값으로 설정할 수 있지만 이렇게 하면 검색 성능이 저하됩니다.

 

IWMIndexer2::Configure

ASF 파일을 인덱싱하려면

WMCreateIndexer

인덱스 작업