Partilhar via


Pausando

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use 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 de filtro. No método Pause , crie todos os recursos necessários para o filtro:

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

    /* Create filter resources. */

    return CBaseFilter::Pause();
}

O método CBaseFilter::P ause define o estado correto no filtro (State_Paused) e chama o método CBasePin::Active em cada pin conectado no filtro. O método Active informa ao pino que o filtro se tornou ativo. Se o pin 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()
}