Metodo ISampleGrabber::SetOneShot

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Nota

[Deprecata. Questa API può essere rimossa dalle versioni future di Windows.]

 

Il metodo SetOneShot specifica se il filtro Sample Grabber viene interrotto dopo che il filtro riceve un esempio.

Sintassi

HRESULT SetOneShot(
   BOOL OneShot
);

Parametri

OneShot

Valore booleano che specifica se il filtro Sample Grabber viene interrotto dopo la ricezione di un campione.

Valore Significato
VERO
Sample Grabber si interrompe dopo il primo campione.
FALSE
Dopo il primo esempio, Sample Grabber continua a elaborare i campioni. Questo è il comportamento predefinito.

 

Valore restituito

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

Usare questo metodo per ottenere un singolo esempio dal flusso, come indicato di seguito:

  1. Chiamare SetOneShot con il valore TRUE.
  2. Facoltativamente, usare l'interfaccia IMediaSeeking per cercare una posizione nel flusso.
  3. Chiamare IMediaControl::Run per eseguire il grafico del filtro.
  4. Chiamare IMediaEvent::WaitForCompletion per attendere l'interruzione del grafico. In alternativa, chiamare IMediaEvent::GetEvent per ottenere gli eventi del grafo, fino a quando non si riceve l'evento EC_COMPLETE .

Dopo l'interruzione di Sample Grabber, il grafico dei filtri è ancora in esecuzione. È possibile cercare o sospendere il grafico per ottenere un altro esempio.

Nota

Una versione precedente della documentazione ha dichiarato che il grafico del filtro si interrompe dopo la ricezione dell'esempio. Questo non è accurato. Il flusso termina, ma il grafico rimane nello stato di esecuzione.

 

Sample Grabber implementa la modalità one-shot chiamando IPin::EndOfStream nel filtro downstream e restituendo S_FALSE dal metodo IMemInputPin::Receive .

Nota

Il file di intestazione Qedit.h non è compatibile con le intestazioni Direct3D successive alla versione 7.

 

Nota

Per ottenere Qedit.h, scaricare l'aggiornamento Microsoft Windows SDK per Windows Vista e .NET Framework 3.0. Qedit.h non è disponibile nella Microsoft Windows SDK per Windows 7 e .NET Framework 3.5 Service Pack 1.

 

Requisiti

Requisito Valore
Intestazione
Qedit.h
Libreria
Strmiids.lib

Vedi anche

Uso di Sample Grabber

Interfaccia ISampleGrabber