Интерфейс IMediaSeeking (strmif.h)
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
Интерфейс IMediaSeeking
содержит методы для поиска позиции в потоке и для настройки скорости воспроизведения. Диспетчер фильтров графов предоставляет этот интерфейс, а также отдельные фильтры или контакты. Приложения должны запрашивать интерфейс диспетчера фильтров Graph.
Диспетчер графа фильтров распределяет любой IMediaSeeking
вызов для каждого фильтра отрисовщика в графе. Фильтры отрисовщика отправляют вышестоящий вызова в исходные фильтры. Эта последовательность событий гарантирует, что все потоки остаются синхронизированными. Если какой-либо из распределенных вызовов возвращает ошибку, диспетчер фильтров графов возвращает первое полученное значение ошибки, даже если некоторые из распределенных вызовов успешно выполнены. Исключением является E_NOTIMPL: диспетчер фильтров графов не возвращает E_NOTIMPL, если он не был возвращен всеми распределенными вызовами.
Приложение может искать граф, пока граф находится в любом состоянии (выполняется, приостановлено или остановлено). Если граф выполняется, диспетчер фильтров графов приостанавливает граф перед выполнением команды seek. Затем он снова запускает граф. Все операции поиска не зависят от текущей скорости воспроизведения. Операции поиска приводят к тому, что все ожидающие данные мультимедиа будут сброшены с графа.
Для всех IMediaSeeking
параметров, указывающих время, единица времени зависит от текущего формата времени. Чтобы задать формат времени, вызовите метод IMediaSeeking::SetTimeFormat . Форматы времени — это глобальные уникальные идентификаторы (GUID), определенные в uuids.h. Дополнительные сведения см. в разделе Идентификаторы GUID формата времени.
Наследование
Интерфейс IMediaSeeking наследуется от интерфейса IUnknown . IMediaSeeking также имеет следующие типы членов:
Методы
Интерфейс IMediaSeeking имеет следующие методы.
IMediaSeeking::CheckCapabilities Метод CheckCapabilities запрашивает, заданы ли в потоке возможности поиска. |
IMediaSeeking::ConvertTimeFormat Метод ConvertTimeFormat выполняет преобразование из одного формата времени в другой. |
IMediaSeeking::GetAvailable Метод GetAvailable извлекает диапазон времени, в котором поиск является эффективным. |
IMediaSeeking::GetCapabilities Метод GetCapabilities извлекает все возможности поиска потока. |
IMediaSeeking::GetCurrentPosition Метод GetCurrentPosition извлекает текущую позицию относительно общей длительности потока. |
IMediaSeeking::GetDuration Метод GetDuration получает длительность потока. |
IMediaSeeking::GetPositions Метод GetPositions извлекает текущую позицию и позицию остановки относительно общей длительности потока. |
IMediaSeeking::GetPreroll Метод GetPreroll извлекает объем данных, которые будут помещены в очередь перед начальной позицией. |
IMediaSeeking::GetRate Метод GetRate извлекает частоту воспроизведения. |
IMediaSeeking::GetStopPosition Метод GetStopPosition извлекает время остановки воспроизведения относительно длительности потока. |
IMediaSeeking::GetTimeFormat Метод GetTimeFormat извлекает формат времени, который в настоящее время используется для операций поиска. |
IMediaSeeking::IsFormatSupported Метод IsFormatSupported определяет, поддерживается ли указанный формат времени для операций поиска. |
IMediaSeeking::IsUsingTimeFormat Метод IsUsingTimeFormat определяет, используются ли в настоящее время операции поиска в указанном формате времени. |
IMediaSeeking::QueryPreferredFormat Метод QueryPreferredFormat извлекает предпочтительный формат времени для поиска. |
IMediaSeeking::SetPositions Метод SetPositions задает текущую и стоп-позицию. |
IMediaSeeking::SetRate Метод SetRate задает частоту воспроизведения. |
IMediaSeeking::SetTimeFormat Метод SetTimeFormat задает формат времени для последующих операций поиска. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | strmif.h (включая Dshow.h) |