Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
Метод StopWhenReady приостанавливает работу графа фильтров, позволяя фильтрам помещать данные в очередь, а затем останавливает граф фильтров.
Синтаксис
HRESULT StopWhenReady();
Возвращаемое значение
Возвращает значение HRESULT . Ниже приведены возможные значения.
| Код возврата | Описание |
|---|---|
|
Успешно. |
|
Граф по-прежнему переходил в приостановленное состояние при возвращении метода. |
Комментарии
Этот метод полезен, если вы хотите искать граф фильтра во время остановки графа. Пока диаграмма фильтра остановлена, изменения в текущей позиции не будут перекраив окно видео новым кадром. Поэтому вызов IMediaSeeking::SetPositions не обновляет окно видео. Чтобы обновить окно после операции поиска, вызовите .StopWhenReady Этот метод переводит граф в приостановленное состояние, ожидает завершения операции приостановки, а затем переводит граф обратно в остановленное. Операция приостановки помещает данные в очередь на графе, чтобы отрисовщик видео получал и отображал новый кадр.
Этот метод является асинхронным. Он ожидает завершения паузы в отдельном потоке. Вызывающий поток не блокируется, что позволяет приложению реагировать на введенные пользователем данные. При возврате метода логическое состояние графа останавливается еще до завершения операции приостановки. При вызове метода IMediaControl::GetState на этом этапе он возвращает State_Stopped.
Если приложение выполняет другую команду изменения состояния (например, приостановку, запуск или поиск) перед завершением операции приостановки, новая команда отменяет ожидающие команды stop. Операция приостановки завершается, но граф не останавливается.
Требования
| Требование | Значение |
|---|---|
| Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
| Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
| Целевая платформа | Windows |
| Header | control.h (включая Dshow.h) |
| Библиотека | Strmiids.lib |