正在暫停

[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]

所有篩選狀態變更都必須保留篩選鎖定。 在 Pause 方法中,建立篩選所需的任何資源:

HRESULT CMyFilter::Pause()
{
    CAutoLock lock_it(m_pLock);

    /* Create filter resources. */

    return CBaseFilter::Pause();
}

CBaseFilter::P ause方法會在篩選 (State_Paused) 上設定正確的狀態,並在篩選中的每個連接釘選上呼叫CBasePin::Active方法。 Active方法會通知釘選篩選已變成作用中。 如果針腳建立資源,請覆寫 Active 方法,如下所示:

HRESULT CMyInputPin::Active()
{
    // You do not need to hold the filter lock here. It is already held in Pause.

    /* Create pin resources. */

    return CBaseInputPin::Active()
}