CBaseStreamControl.NotifyFilterState-Methode
[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]
Die NotifyFilterState
-Methode benachrichtigt den Pin, wenn sich der Status des Filters ändert.
void NotifyFilterState(
FILTER_STATE new_state,
REFERENCE_TIME tStart = 0
);
-
new_state
-
Gibt den neuen Zustand als Member der FILTER_STATE-Enumeration an.
-
tStart
-
Gibt die Startzeit an. Wenn der neue Filterstatus State_Running ist, übergeben Sie den Wert aus der IMediaFilter::Run-Methode . Andernfalls verwenden Sie den Standardwert.
Diese Methode gibt keinen Wert zurück.
Diese Methode bewirkt, dass die CBaseStreamControl::CheckStreamState-Methode nicht mehr wartet. Rufen Sie diese Methode auf, wenn sich der Status des besitzenden Filters ändert.
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();
}
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|