Método ISampleGrabber::SetOneShot

[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.]

Observação

[Preterido. Essa API pode ser removida de versões futuras do Windows.]

 

O método SetOneShot especifica se o filtro De exemplo grabber é interrompido depois que o filtro recebe uma amostra.

Sintaxe

HRESULT SetOneShot(
   BOOL OneShot
);

Parâmetros

Oneshot

Um valor booliano que especifica se o filtro De exemplo grabber é interrompido depois de receber uma amostra.

Valor Significado
VERDADE
O Grabber de Exemplo é interrompido após o primeiro exemplo.
FALSE
Após o primeiro exemplo, o Sample Grabber continua a processar amostras. Esse é o comportamento padrão.

 

Retornar valor

Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

Use esse método para obter um único exemplo do fluxo, da seguinte maneira:

  1. Chame SetOneShot com o valor TRUE.
  2. Opcionalmente, use a interface IMediaSeeking para buscar uma posição no fluxo.
  3. Chame IMediaControl::Run para executar o grafo de filtro.
  4. Chame IMediaEvent::WaitForCompletion para aguardar a interrupção do grafo. Como alternativa, chame IMediaEvent::GetEvent para obter eventos de grafo até receber o evento EC_COMPLETE .

Depois que o Grabber de Exemplo for interrompido, o grafo de filtro ainda estará em um estado de execução. Você pode buscar ou pausar o grafo para obter outra amostra.

Observação

Uma versão anterior da documentação afirmou que o grafo de filtro é interrompido depois que o exemplo é recebido. Isso não é preciso. O fluxo termina, mas o grafo permanece no estado em execução.

 

O Sample Grabber implementa o modo one-shot chamando IPin::EndOfStream no filtro downstream e retornando S_FALSE do método IMemInputPin::Receive dele.

Observação

O arquivo de cabeçalho Qedit.h não é compatível com cabeçalhos Direct3D posteriores à versão 7.

 

Observação

Para obter qedit.h, baixe o SDK do Microsoft Windows Update para Windows Vista e .NET Framework 3.0. O Qedit.h não está disponível no SDK do Microsoft Windows para Windows 7 e .NET Framework 3.5 Service Pack 1.

 

Requisitos

Requisito Valor
parâmetro
Qedit.h
Biblioteca
Strmiids.lib

Confira também

Usando o grabber de exemplo

ISampleGrabber Interface