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:
- Chiamare SetOneShot con il valore TRUE.
- Facoltativamente, usare l'interfaccia IMediaSeeking per cercare una posizione nel flusso.
- Chiamare IMediaControl::Run per eseguire il grafico del filtro.
- 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 |
|
Libreria |
|
Vedi anche