Partilhar via


Para implementar o callback OnSample

[A funcionalidade associada a esta página, Windows Media Format 11 SDK, é uma funcionalidade herdada. Foi substituído por Source Reader e Sink Writer. Source Reader e Sink Writer foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize o Leitor de Origem e o Gravador de Destino em vez do SDK do Windows Media Format 11 , sempre que possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O leitor assíncrono entrega amostras para o aplicativo de controle em ordem de tempo de apresentação fazendo chamadas para o método de retorno de chamada IWMReaderCallback::OnSample. Ao criar um aplicativo usando o leitor assíncrono, você deve implementar OnSample para lidar com amostras não compactadas. Normalmente, as funções ou métodos criados para renderizar conteúdo são chamados a partir de dentro de OnSample.

A implementação típica do callback OnSample inclui os seguintes passos.

  1. Recupere a localização e o tamanho do buffer que contém a amostra chamando INSSBuffer::GetBufferAndLength no buffer passado como pSample.
  2. Ramifique sua lógica dependendo do número de saída. O número de saída é passado para OnSample como dwOutputNumber.
  3. Inclua lógica de renderização para cada número de saída que você deseja suportar. Se você estiver renderizando amostras de várias saídas, talvez seja necessário sincronizar a renderização.

Os aplicativos que fornecem amostras compactadas de arquivos ASF precisam implementar o método callback IWMReaderCallbackAdvanced::OnStreamSample. OnStreamSample funciona de forma quase idêntica ao OnSample, exceto que recebe amostras compactadas por número de fluxo em vez de amostras não compactadas por número de saída.

Interface IWMReaderCallback

Interface IWMReaderCallbackAdvanced

leitura de arquivos com o leitor assíncrono

Usando os métodos de retorno de chamada