Lettura di file con il lettore asincrono
[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stata sostituita da Lettore di origine e Writer sink. Lettore di origine e Writer sink sono stati ottimizzati per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi Lettore di origine e Writer sink anziché Windows Media Format 11 SDK, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
Il lettore asincrono legge il contenuto dai file ASF usando più thread e chiamate asincrone. Le funzionalità supportate dal lettore asincrono rendono più adatto alle applicazioni che eseguono il rendering del contenuto agli utenti finali.
La funzionalità di base dell'oggetto lettore può essere suddivisa nei passaggi seguenti. In questi passaggi "l'applicazione" fa riferimento al programma scritto usando Windows Media Format SDK.
- L'applicazione implementa l'interfaccia IWMReaderCallback per gestire i messaggi dal lettore. Include due metodi di callback: OnStatus, che riceve messaggi relativi allo stato di vari aspetti del lettore e OnSample, che riceve esempi non compressi dal lettore.
- L'applicazione passa al lettore il nome di un file da leggere. Quando il lettore apre il file, assegna un numero di output a ogni flusso. Se il file usa l'esclusione reciproca, il lettore assegna un singolo output per tutti i flussi reciprocamente esclusivi.
- L'applicazione ottiene informazioni sulla configurazione dei vari output dal lettore. Le informazioni raccolte consentiranno all'applicazione di eseguire correttamente il rendering degli esempi multimediali.
- L'applicazione indica al lettore di iniziare a leggere i dati dal file. Il lettore inizia a distribuire esempi non compressi al callback OnSample uno alla volta nei buffer racchiusi in oggetti buffer. Gli esempi recapitati dal lettore sono in ordine di presentazione. Il lettore continuerà a distribuire esempi fino a quando non viene arrestato dall'applicazione o fino alla fine del file.
- L'applicazione è responsabile del rendering dei dati dopo che viene recapitata dal lettore. Windows Media Format SDK non fornisce routine di rendering. In genere, le applicazioni useranno altri SDK per eseguire il rendering dei dati, ad esempio Microsoft DirectX® SDK o le funzioni multimediali del SDK per piattaforma Windows Microsoft.
- Al termine della lettura, l'applicazione indica al lettore di chiudere il file.
Questi passaggi sono illustrati nell'applicazione di esempio AudioPlayer, tra gli altri. Per altre informazioni, vedere Applicazioni di esempio.
Il lettore supporta anche funzionalità più avanzate. Il lettore consente di eseguire le operazioni seguenti:
- Sospendere la riproduzione di un file.
- Recuperare le statistiche sulle prestazioni del lettore.
- Controllare la selezione del flusso per flussi esclusivi a vicenda.
- Allocare manualmente i buffer per l'output.
- Specificare il proprio orologio.
- Recuperare lo stato delle operazioni di file (buffering, download o salvataggio).
- Aprire un file usando l'interfaccia COM standard, IStream.
- Cercare punti specifici in un file ASF.
- Leggere i dati del profilo dall'intestazione del file.
Le sezioni seguenti descrivono in dettaglio l'uso dell'oggetto lettore.
- Per implementare i messaggi di lettura nel callback OnStatus
- Per implementare il callback onSample
- Per creare un lettore e aprire un file
- Per recuperare esempi multimediali con il lettore asincrono
- Per cercare in base al tempo usando il lettore asincrono
- Per cercare in base al numero di frame usando il lettore asincrono
- Per cercare il codice time SMPTE usando il lettore asincrono
- Per cercare marcatori
- Per sospendere o arrestare la riproduzione
- Per ottenere statistiche sulle prestazioni del lettore
- Per usare la selezione del flusso manuale
- Per distribuire esempi compressi con il lettore asincrono
Argomenti correlati