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


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

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

Метод GetCurrentPosition извлекает текущую позицию относительно общей длительности потока.

Синтаксис

HRESULT GetCurrentPosition(
  [out] LONGLONG *pCurrent
);

Параметры

[out] pCurrent

Указатель на переменную, которая получает текущую позицию в единицах текущего формата времени.

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

Возвращает значение HRESULT . Ниже приведены возможные значения.

Код возврата Описание
S_OK
Успешно.
E_NOTIMPL
Метод не поддерживается.
E_POINTER
Аргумент указателя NULL.

Комментарии

Этот метод возвращает текущую позицию, которую достигло воспроизведение. Значение включает корректировки скорости воспроизведения и времени начала. Например, если время начала — 5 секунд, скорость воспроизведения — 2,0, а график выполняется в течение четырех секунд, текущая позиция — 5 + (4 x 2,0) = 13,0 секунды.

Возвращаемое значение выражается в единицах текущего формата времени. Чтобы определить текущий формат времени, вызовите метод GetTimeFormat .

Если график приостановлен или остановлен, текущая позиция — это точка, в которой будет возобновлено воспроизведение.

Диспетчер графов фильтров вычисляет позицию из текущего времени потока; он не запрашивает фильтры в графе. При воспроизведении файлов это дает точный результат, так как воспроизведение синхронизировано со временем потока. При записи в файл результаты не являются точными. Чтобы получить текущую позицию в графе для записи файла, запросите фильтр мультиплексоров. (Однако позиция не имеет значения для записи в реальном времени.)

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

Требования

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

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

Коды ошибок и успешности

Интерфейс IMediaSeeking