Получение длительности воспроизведения
[Функция, связанная с этой страницей MFPlay, является устаревшей функцией. Он был заменен MediaPlayer и МВФMediaEngine. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новый код MediaPlayer и IMFMediaEngine вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]
В этом разделе описывается, как получить длительность воспроизведения файла мультимедиа с помощью MFPlay.
Получение длительности воспроизведения
- Вызов МВФPMediaPlayer::CreateMediaItemFromURL или IMFPMediaPlayer::CreateMediaItemFromObject для создания элемента мультимедиа для файла.
- Вызов МВФPMediaItem::GetDuration. Укажите MFP_POSITIONTYPE_100NS для первого параметра. Длительность возвращается в виде PROPVARIANT , содержащего значение LARGE_INTEGER . Длительность присваивается в 100-наносекундах.
В следующем примере показан шаг 2.
#include <propvarutil.h>
HRESULT GetPlaybackDuration(IMFPMediaItem *pItem, ULONGLONG *phnsDuration)
{
PROPVARIANT var;
HRESULT hr = pItem->GetDuration(MFP_POSITIONTYPE_100NS, &var);
if (SUCCEEDED(hr))
{
hr = PropVariantToUInt64(var, phnsDuration);
PropVariantClear(&var);
}
return hr;
}
Требования
Для MFPlay требуется Windows 7.
См. также