Compartilhar via


Para implementar o retorno de chamada onSample

[O recurso associado a esta página, Windows Media Format 11 SDK, é um recurso herdado. Ele foi substituído por Leitor de Origem e Gravador de Coletor. O Leitor de Origem e o Gravador de Coletor foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use o Leitor de Origem e o Gravador de Coletor em vez do SDK do Windows Media Format 11, quando 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 fornece exemplos para o aplicativo controlador 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 o OnSample para lidar com exemplos não compactados. Normalmente, funções ou métodos criados para renderizar conteúdo serão chamados de dentro do OnSample.

A implementação típica do retorno de chamada onSample inclui as etapas a seguir.

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

Os aplicativos que fornecem exemplos compactados de arquivos ASF precisam implementar o método de retorno de chamada IWMReaderCallbackAdvanced::OnStreamSample . O OnStreamSample funciona quase idêntico ao OnSample, exceto pelo fato de receber amostras compactadas por número de fluxo em vez de amostras descompactadas por número de saída.

IWMReaderCallback Interface

IWMReaderCallbackAdvanced Interface

Lendo arquivos com o leitor assíncrono

Usando os métodos de retorno de chamada