Per implementare il callback OnSample

[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stata sostituita dal lettore di origine e dal 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 fornisce esempi all'applicazione di controllo nell'ordine di presentazione effettuando chiamate al metodo di callback IWMReaderCallback::OnSample . Quando si crea un'applicazione usando il lettore asincrono, è necessario implementare OnSample per gestire esempi non compressi. In genere, le funzioni o i metodi creati per il rendering del contenuto verranno chiamati dall'interno di OnSample.

L'implementazione tipica del callback OnSample include i passaggi seguenti.

  1. Recuperare la posizione e le dimensioni del buffer contenente l'esempio chiamando INSSBuffer::GetBufferAndLength nel buffer passato come pSample.
  2. Creare un ramo della logica in base al numero di output. Il numero di output viene passato a OnSample come dwOutputNumber.
  3. Includere la logica di rendering per ogni numero di output che si vuole supportare. Se si esegue il rendering di esempi da più output, potrebbe essere necessario sincronizzare il rendering.

Le applicazioni che forniscono esempi compressi dai file ASF devono implementare il metodo di callback IWMReaderCallbackAdvanced::OnStreamSample . Le funzioni OnStreamSample sono quasi identiche a OnSample, ad eccezione del fatto che riceve campioni compressi per numero di flusso anziché campioni non compressi in base al numero di output.

Interfaccia IWMReaderCallback

Interfaccia IWMReaderCallbackAdvanced

Lettura di file con il lettore asincrono

Utilizzo dei metodi di callback