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


Интерфейс IMediaPosition (control.h)

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

Интерфейс IMediaPosition содержит методы для поиска позиции в потоке.

Примечание Приложения должны использовать IMediaSeeking вместо IMediaPosition.
 

Этот интерфейс предоставляется диспетчером фильтров Graph, а также отдельными фильтрами. Приложения должны получить указатель интерфейса IMediaPosition из диспетчера фильтров Graph, а не из фильтра. Диспетчер графа фильтров распределяет вызовы методов для всех фильтров отрисовщика. Фильтры отрисовщика распространяют вызовы вышестоящий на исходные фильтры. Эта последовательность событий гарантирует, что все потоки будут синхронизированы.

Если один из распределенных вызовов возвращает ошибку, диспетчер фильтров graph возвращает первое полученное значение ошибки. В этом случае некоторые из распределенных вызовов могут завершиться успешно. Однако граф фильтра не возвращает E_NOTIMPL , если только все распределенные вызовы не возвращают E_NOTIMPL. Если хотя бы один фильтр в графе реализует метод , диспетчер фильтров графа не возвращает E_NOTIMPL.

Наследование

Интерфейс IMediaPosition наследуется от интерфейса IDispatch . IMediaPosition также имеет следующие типы элементов:

Методы

Интерфейс IMediaPosition содержит следующие методы.

 
IMediaPosition::CanSeekBackward

Метод CanSeekBackward определяет, может ли граф фильтра искать назад в потоке.
IMediaPosition::CanSeekForward

Метод CanSeekForward определяет, может ли граф фильтра искать вперед в потоке.
IMediaPosition::get_CurrentPosition

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

Метод get_Duration извлекает длительность потока.
IMediaPosition::get_PrerollTime

Метод get_PrerollTime извлекает объем данных, которые будут помещены в очередь до начальной позиции.
IMediaPosition::get_Rate

Метод get_Rate извлекает скорость воспроизведения.
IMediaPosition::get_StopTime

Метод get_StopTime извлекает время остановки воспроизведения относительно длительности потока.
IMediaPosition::p ut_CurrentPosition

Метод put_CurrentPosition задает текущую позицию относительно общей длительности потока.
IMediaPosition::p ut_PrerollTime

Метод put_PrerollTime задает объем данных, которые будут помещены в очередь до начальной позиции.
IMediaPosition::p ut_Rate

Метод put_Rate задает частоту воспроизведения.
IMediaPosition::p ut_StopTime

Метод put_StopTime задает время остановки воспроизведения относительно длительности потока.

Требования

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

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

IDispatch