Интерфейс 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)

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

Поиск графа фильтра