Метод 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();
}
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|