Condividi tramite


Afferrare un frame poster

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

[Questa API non è supportata e potrebbe essere modificata o non disponibile in futuro.]

Questo articolo descrive come visualizzare un frame poster da un file multimediale digitale usando l'oggetto Media Detector (MediaDet) fornito con DirectShow Editing Services.

Media Detector è un oggetto helper che può ottenere informazioni sul formato da un file di origine multimediale. Può anche acquisire un'immagine bitmap da un flusso video nel file di origine. Supponendo che il file sia ricercabile, è possibile ottenere l'immagine da qualsiasi punto del file. L'immagine restituita è sempre in formato RGB a 24 bit.

Media Detector non è un filtro e l'applicazione non deve usare Filter Graph Manager o creare un grafico di filtro. Internamente, Media Detector crea un grafico di filtro che contiene il filtro Grabber di esempio. Per ottenere una bitmap, Media Detector cerca e sospende il grafico del filtro e quindi recupera la bitmap dal filtro Sample Grabber. L'applicazione comunica con Media Detector tramite l'interfaccia IMediaDet . Media Detector è un buon esempio di incapsulamento di un grafico di filtro all'interno di un oggetto helper, per proteggere le applicazioni dai dettagli correlati al grafico.

Media Detector funziona in due modalità. Quando la si crea per la prima volta, Il rilevatore multimediale è in modalità "raccolta di informazioni". È possibile specificare il nome di un file multimediale e ottenere informazioni su ognuno dei flussi nel file, ad esempio il tipo di formato, la frequenza dei fotogrammi o la durata. Se il file contiene un flusso video, è possibile passare il rilevatore multimediale in modalità "bitmap grab" e recuperare le bitmap dall'origine. Tuttavia, una volta eseguita questa operazione, non è possibile ripristinare la modalità originale del rilevatore multimediale; è collegato in modo permanente a tale flusso video. Per usare un altro flusso o un altro file, è necessario creare una nuova istanza di Media Detector.

Nota

Gli esempi di codice in questa esercitazione usano la classe ATL CComPtr , che gestisce automaticamente i conteggi dei riferimenti. Se si preferisce usare puntatori di interfaccia non elaborati, ricordarsi di rilasciare ogni interfaccia al termine dell'operazione. Inoltre, per brevità, gli esempi di codice omettono gran parte del controllo degli errori che un'applicazione deve eseguire. Nel codice di lavoro controllare sempre i valori HRESULT .

 

Questa esercitazione include i passaggi seguenti:

Uso dei servizi di modifica DirectShow