Creazione di oggetti flusso multimediale ed esempi di flusso
[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
Queste API sono deprecate. Le applicazioni devono usare il filtro Sample Grabber o implementare un filtro personalizzato per ottenere dati da un grafico di filtro DirectShow.
Gli oggetti che supportano l'interfaccia IMultiMediaStream sono i contenitori di base per i flussi di dati multimediali. L'interfaccia IMultiMediaStream include metodi che enumerare i flussi di dati dell'oggetto; questi flussi sono in genere dati video e audio, ma possono includere dati di qualsiasi formato, ad esempio sottotitoli, testo normale o codice temporale SMPTE. L'interfaccia IMultiMediaStream è tuttavia un contenitore generico; gli sviluppatori possono creare altre versioni dell'interfaccia che supportano formati di dati specifici. Gli oggetti che implementano l'interfaccia IAMMultiMediaStream , ad esempio, possono enumerare e controllare i flussi di qualsiasi formato di dati DirectShow. Poiché i singoli flussi di dati sono specifici del formato, supportano almeno due interfacce diverse: una generica e una specifica dei dati. Ogni flusso supporta l'interfaccia IMediaStream , che fornisce metodi per recuperare il formato e un puntatore al flusso stesso. L'interfaccia IDirectDrawMediaStream , d'altra parte, include metodi che gestiscono in modo specifico i dati video di rendering. Qualsiasi interfaccia derivata da IMultiMediaStream supporta anche la creazione di campioni di flusso, le unità di base dei dati di streaming.
Un esempio multimediale è un riferimento a un oggetto contenente i dati multimediali. Per un'immagine video, si tratta di una superficie DirectDraw. Il contenuto esatto dell'esempio varia a seconda del tipo di supporto (audio, testo e così via). Poiché un esempio è solo un riferimento all'oggetto dati, qualsiasi numero di esempi di flusso può fare riferimento allo stesso oggetto. L'interfaccia IStreamSample fornisce metodi che ottengono e impostano le caratteristiche di un esempio, ad esempio l'ora di inizio e arresto, lo stato e l'associazione del flusso. Il metodo IStreamSample::Update aggiorna i dati dell'esempio in caso di flussi leggibili. Per i flussi scrivibili, scriverà i dati dell'esempio nel flusso. In genere, si usa il metodo Update in un ciclo che esegue il rendering, i trasferimenti o archivia i dati di streaming.
Argomenti correlati