Поиск длительности файла мультимедиа
Чтобы найти продолжительность файла мультимедиа, выполните следующие действия.
- Используйте сопоставитель источников для создания источника мультимедиа, который может анализировать файл мультимедиа.
- Вызовите IMFMediaSource::CreatePresentationDescriptor в источнике мультимедиа. Этот метод возвращает дескриптор презентации, описывающий содержимое файла мультимедиа.
- Запросите дескриптор презентации для атрибута MF_PD_DURATION , вызвав метод IMFAttributes::GetUINT64 . Значение атрибута, если оно имеется, — это длительность файла в 100 наносекундных единиц.
HRESULT GetSourceDuration(IMFMediaSource *pSource, MFTIME *pDuration)
{
*pDuration = 0;
IMFPresentationDescriptor *pPD = NULL;
HRESULT hr = pSource->CreatePresentationDescriptor(&pPD);
if (SUCCEEDED(hr))
{
hr = pPD->GetUINT64(MF_PD_DURATION, (UINT64*)pDuration);
pPD->Release();
}
return hr;
}
Связанные темы