Método IMediaControl::StopWhenReady (control.h)

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in 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 Audio/Video Capture in 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.]

O StopWhenReady método pausa o grafo de filtro, permitindo que os filtros enfileiram dados e, em seguida, interrompe o grafo de filtro.

Sintaxe

HRESULT StopWhenReady();

Retornar valor

Retorna um valor HRESULT . Os possíveis valores incluem os seguintes.

Código de retorno Descrição
S_OK
Êxito.
S_FALSE
O grafo ainda estava fazendo a transição para o estado em pausa quando o método retornou.

Comentários

Esse método é útil se você quiser buscar o grafo de filtro enquanto o grafo é interrompido. Desde que o grafo de filtro seja interrompido, as alterações na posição atual não repintam a janela de vídeo com um novo quadro. Portanto, chamar IMediaSeeking::SetPositions não atualiza a janela de vídeo. Para atualizar a janela após a operação de busca, chame StopWhenReady. Esse método faz a transição do grafo para um estado em pausa, aguarda a conclusão da operação de pausa e, em seguida, faz a transição do grafo de volta para parado. A operação de pausa enfileira dados no grafo para que o renderizador de vídeo receba e exiba o novo quadro.

Esse método é assíncrono. Ele aguarda um thread separado para que a pausa seja concluída. O thread de chamada não é bloqueado, o que permite que o aplicativo responda à entrada do usuário. Quando o método retorna, o estado lógico do grafo é interrompido, mesmo antes da conclusão da operação de pausa. Se você chamar o método IMediaControl::GetState neste ponto, ele retornará State_Stopped.

Se o aplicativo emitir outro comando de alteração de estado (como pausar, executar ou buscar) antes da conclusão da operação de pausa, o novo comando cancelará o comando stop pendente. A operação de pausa é concluída, mas o grafo não é interrompido.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho control.h (inclua Dshow.h)
Biblioteca Strmiids.lib

Confira também

Códigos de erro e êxito

IMediaControl Interface