Condividi tramite


Per implementare il callback OnSample

[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stata sostituita da lettore di sorgente e scrittore di destinazione. Source Reader e Sink Writer sono stati ottimizzati per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi il lettore di origine e il writer di destinazione invece di 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 recapita campioni all'applicazione di controllo nell'ordine in fase 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 di 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. Dirama la tua logica in base al numero di risultato. 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. OnStreamSample funziona in modo quasi identico a OnSample, ad eccezione del fatto che riceve campioni compressi per numero di flusso anziché campioni non compressi per numero di output.

Interfaccia IWMReaderCallback

IWMReaderCallbackAdvanced - Interfaccia

lettura di file con il lettore asincrono

Uso dei metodi di callback