Метод 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 . Ниже приведены возможные значения.
Код возврата | Описание |
---|---|
|
Успешно. |
|
Метод не поддерживается. |
|
Аргумент указателя 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 |