Condividi tramite


Uso del Rilevatore Multimediale

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita dal MediaPlayer, dal IMFMediaEnginee dall'acquisizione audio/video in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente di usare un nuovo codice MediaPlayer, IMFMediaEngine e Acquisizione audio/video in Media Foundation anziché 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.]

Il rilevatore multimediale è un oggetto helper che può recuperare informazioni su un file, ad esempio il numero di flussi, il tipo e la relativa durata. Contiene anche metodi per il recupero di fotogrammi poster da un flusso video. Espone l'interfaccia IMediaDet.

Il rilevatore multimediale opera in una delle due modalità. Quando si crea un'istanza del rilevatore multimediale, non viene collegata a un file di origine specifico. In questa modalità è possibile recuperare le informazioni di flusso da più file di origine. Tuttavia, quando si usa il rilevatore multimediale per ottenere un fotogramma poster, passa alla modalità di acquisizione bitmap . In modalità di afferramento bitmap, il rilevatore multimediale è collegato a un flusso video specifico e i metodi di informazioni sul flusso non funzionano più. Inoltre, non c'è modo di ripristinare la modalità iniziale del rilevatore multimediale. Pertanto, è necessario ottenere tutte le informazioni sullo stream necessarie prima di recuperare i quadri poster, oppure creare nuove istanze del rilevatore multimediale per ogni stream.

Per ottenere informazioni sul flusso, eseguire le operazioni seguenti:

  1. Chiamare IMediaDet::put_Filename con il nome del file di origine.
  2. Chiamare IMediaDet::get_OutputStreams per ottenere il numero di flussi nell'origine.
  3. Specificare un numero di flusso con IMediaDet::put_CurrentStream. Chiamare quindi uno o più dei metodi seguenti:

Per ottenere un'immagine fissa di poster, specificare il numero di stream video, come nel passaggio precedente. Chiamare quindi IMediaDet::GetBitmapBits, che copia un frame poster in un buffer o IMediaDet::WriteBitmapBits, che salva un frame poster in un file.

Lavorare con le fonti