Интерфейс IMediaPosition (control.h)
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Интерфейс 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) |