Méthode CBaseStreamControl.NotifyFilterState
[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]
La NotifyFilterState
méthode avertit l’épingle lorsque l’état du filtre change.
Syntaxe
void NotifyFilterState(
FILTER_STATE new_state,
REFERENCE_TIME tStart = 0
);
Paramètres
-
new_state
-
Spécifie le nouvel état, en tant que membre de l’énumération FILTER_STATE .
-
tStart
-
Spécifie l’heure de début. Si le nouvel état de filtre est State_Running, transmettez la valeur de la méthode IMediaFilter::Run . Sinon, utilisez la valeur par défaut.
Valeur renvoyée
Cette méthode ne retourne pas de valeur.
Notes
Cette méthode entraîne l’arrêt de l’attente de la méthode CBaseStreamControl::CheckStreamState . Appelez cette méthode chaque fois que le filtre propriétaire change d’état.
Exemples
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();
}
Configuration requise
Condition requise | Valeur |
---|---|
En-tête |
|
Bibliothèque |
|