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


Метод IMediaControl::StopWhenReady (control.h)

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

Метод StopWhenReady приостанавливает работу графа фильтров, позволяя фильтрам помещать данные в очередь, а затем останавливает граф фильтров.

Синтаксис

HRESULT StopWhenReady();

Возвращаемое значение

Возвращает значение HRESULT . Ниже приведены возможные значения.

Код возврата Описание
S_OK
Успешно.
S_FALSE
Граф по-прежнему переходил в приостановленное состояние при возвращении метода.

Комментарии

Этот метод полезен, если вы хотите искать граф фильтра во время остановки графа. Пока диаграмма фильтра остановлена, изменения в текущей позиции не будут перекраив окно видео новым кадром. Поэтому вызов IMediaSeeking::SetPositions не обновляет окно видео. Чтобы обновить окно после операции поиска, вызовите .StopWhenReady Этот метод переводит граф в приостановленное состояние, ожидает завершения операции приостановки, а затем переводит граф обратно в остановленное. Операция приостановки помещает данные в очередь на графе, чтобы отрисовщик видео получал и отображал новый кадр.

Этот метод является асинхронным. Он ожидает завершения паузы в отдельном потоке. Вызывающий поток не блокируется, что позволяет приложению реагировать на введенные пользователем данные. При возврате метода логическое состояние графа останавливается еще до завершения операции приостановки. При вызове метода IMediaControl::GetState на этом этапе он возвращает State_Stopped.

Если приложение выполняет другую команду изменения состояния (например, приостановку, запуск или поиск) перед завершением операции приостановки, новая команда отменяет ожидающие команды stop. Операция приостановки завершается, но граф не останавливается.

Требования

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

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

Коды ошибок и успешности

Интерфейс IMediaControl