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


Метод CBaseStreamControl.NotifyFilterState

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

Метод NotifyFilterState уведомляет закрепление при изменении состояния фильтра.

Синтаксис

void NotifyFilterState(
   FILTER_STATE   new_state,
   REFERENCE_TIME tStart = 0
);

Параметры

new_state

Задает новое состояние в качестве члена перечисления FILTER_STATE .

tStart

Указывает время начала. Если новое состояние фильтра State_Running, передайте значение из метода IMediaFilter::Run . В противном случае используйте значение по умолчанию.

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

Этот метод не возвращает значение.

Комментарии

Этот метод приводит к остановке ожидания метода CBaseStreamControl::CheckStreamState . Вызывайте этот метод всякий раз, когда фильтр-владение изменяет состояние.

Примеры

STDMETHODIMP CMyFilter::Run(REFERENCE_TIME tStart)
{
   /* Do other things needed by the filter ... */
   m_pMyPin->NotifyFilterState(State_Running, tStart);
   return CBaseFilter::Run(tStart); // Call the filter base class.
}

STDMETHODIMP CMyFilter::Pause()
{
   /* Do other things needed by the filter ... */
   m_pMyPin->NotifyFilterState(State_Paused);
   return CBaseFilter::Pause();
}

STDMETHODIMP CMyFilter::Stop()
{
   /* Do other things needed by the filter ... */
   m_pMyPin->NotifyFilterState(State_Stopped);
   return CBaseFilter::Stop();
}

Требования

Требование Значение
Заголовок
Strmctl.h (включая Streams.h)
Библиотека
Strmbase.lib (розничные сборки);
Strmbasd.lib (отладочные сборки)

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

Класс CBaseStreamControl