Compartir a través de


Método ISampleGrabber::SetOneShot

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

Nota:

[Desusado. Esta API se puede quitar de futuras versiones de Windows.

 

El método SetOneShot especifica si el filtro Sample Grabber se detiene después de que el filtro reciba una muestra.

Sintaxis

HRESULT SetOneShot(
   BOOL OneShot
);

Parámetros

Oneshot

Valor booleano que especifica si el filtro Sample Grabber se detiene después de recibir una muestra.

Valor Significado
VERDAD
El captador de ejemplo se detiene después del primer ejemplo.
FALSO
Después del primer ejemplo, sample grabber continúa procesando muestras. Este es el comportamiento predeterminado.

 

Valor devuelto

Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Observaciones

Use este método para obtener un único ejemplo de la secuencia, como se indica a continuación:

  1. Llame a SetOneShot con el valor TRUE.
  2. Opcionalmente, use la interfaz IMediaSeeking para buscar una posición en la secuencia.
  3. Llame a IMediaControl::Run para ejecutar el gráfico de filtro.
  4. Llame a IMediaEvent::WaitForCompletion para esperar a que el grafo se detenga. Como alternativa, llame a IMediaEvent::GetEvent para obtener eventos de grafo, hasta que reciba el evento EC_COMPLETE .

Después de que se detenga el Captador de ejemplo, el gráfico de filtros sigue en estado de ejecución. Puede buscar o pausar el gráfico para obtener otro ejemplo.

Nota:

Una versión anterior de la documentación indicó que el gráfico de filtro se detiene después de recibir el ejemplo. Eso no es preciso. La secuencia finaliza, pero el gráfico permanece en estado de ejecución.

 

Sample Grabber implementa el modo de captura única llamando a IPin::EndOfStream en el filtro de bajada y devolviendo S_FALSE desde el método IMemInputPin::Receive .

Nota:

El archivo de encabezado Qedit.h no es compatible con los encabezados de Direct3D posteriores a la versión 7.

 

Nota:

Para obtener Qedit.h, descargue la actualización de Microsoft Windows SDK para Windows Vista y .NET Framework 3.0. Qedit.h no está disponible en el Microsoft Windows SDK para Windows 7 y .NET Framework 3.5 Service Pack 1.

 

Requisitos

Requisito Value
Encabezado
Qedit.h
Biblioteca
Strmiids.lib

Consulte también

Usar el captador de ejemplo

ISampleGrabber (interfaz)