Partilhar via


Pausa

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEnginee Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Todas as alterações de estado do filtro devem manter o bloqueio do filtro. No método Pause, crie todos os recursos de que o filtro precisa:

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

    /* Create filter resources. */

    return CBaseFilter::Pause();
}

O método CBaseFilter::Pause define o estado correto no filtro (State_Paused) e chama o método CBasePin::Active para cada pino conectado no filtro. O método Ative informa o pino que o filtro se tornou ativo. Se o pino criar recursos, substitua o método Active da seguinte maneira:

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()
}