Поделиться через


Метод IMediaSeeking::GetDuration (strmif.h)

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

Метод GetDuration получает длительность потока.

Синтаксис

HRESULT GetDuration(
  [out] LONGLONG *pDuration
);

Параметры

[out] pDuration

Получает длительность в единицах текущего формата времени.

Возвращаемое значение

Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Этот метод получает длительность потока с нормальной скоростью воспроизведения. Изменение скорости воспроизведения не влияет на длительность.

Длительность выражается в формате текущего времени. Формат времени по умолчанию — REFERENCE_TIME единиц (100 наносекунд). Чтобы изменить форматы времени, используйте метод IMediaSeeking::SetTimeFormat .

В зависимости от исходного формата длительность может быть не точной. Например, если источник содержит поток переменной скорости (VBR), метод может возвращать предполагаемую длительность.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header strmif.h (включая Dshow.h)
Библиотека Strmiids.lib

См. также раздел

Коды ошибок и успешного выполнения

Интерфейс IMediaSeeking