Метод ISampleGrabber::SetOneShot
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Примечание
[Не рекомендуется. Этот API можно удалить из будущих выпусков Windows.]
Метод SetOneShot указывает, останавливается ли фильтр Sample Grabber после получения фильтра образца.
Синтаксис
HRESULT SetOneShot(
BOOL OneShot
);
Параметры
-
OneShot
-
Логическое значение, указывающее, останавливается ли фильтр Sample Grabber после получения образца.
Значение Значение - ИСТИННЫЙ
Выборка граббера останавливается после первого примера. - ЛОЖНЫХ
После первого образца граббер-образец продолжает обрабатывать образцы. Это поведение по умолчанию.
Возвращаемое значение
Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Используйте этот метод для получения одного примера из потока, как показано ниже.
- Вызовите SetOneShot со значением TRUE.
- При необходимости используйте интерфейс IMediaSeeking для поиска позиции в потоке.
- Вызовите IMediaControl::Run , чтобы запустить граф фильтра.
- Вызовите метод IMediaEvent::WaitForCompletion , чтобы дождаться остановки графа. Кроме того, вызовите IMediaEvent::GetEvent , чтобы получить события графа, пока не получите событие EC_COMPLETE .
После остановки примера Grabber граф фильтра по-прежнему находится в состоянии выполнения. Вы можете найти или приостановить график, чтобы получить другой пример.
Примечание
В более ранней версии документации говорилось, что граф фильтров останавливается после получения примера. Это неверно. Поток заканчивается, но граф остается в состоянии выполнения.
Пример Grabber реализует однократный режим, вызывая метод IPin::EndOfStream в нисходящем фильтре и возвращая S_FALSE из метода IMemInputPin::Receive .
Примечание
Файл заголовка Qedit.h несовместим с заголовками Direct3D более поздней версии 7.
Примечание
Чтобы получить Qedit.h, скачайте обновление Microsoft Windows SDK для Windows Vista и платформа .NET Framework 3.0. Qedit.h недоступен в Microsoft Windows SDK для Windows 7 и платформа .NET Framework 3.5 с пакетом обновления 1 (SP1).
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|
См. также раздел