Lendo arquivos com o leitor assíncrono

[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 lê o conteúdo de arquivos ASF usando vários threads e chamadas assíncronas. Os recursos compatíveis com o leitor assíncrono o tornam adequado para aplicativos que renderizam conteúdo para usuários finais.

A funcionalidade mais básica do objeto leitor pode ser dividida nas etapas a seguir. Nestas etapas, "o aplicativo" refere-se ao programa que você escreve usando o SDK de Formato de Mídia do Windows.

  1. O aplicativo implementa a interface IWMReaderCallback para lidar com mensagens do leitor. Isso inclui dois métodos de retorno de chamada: OnStatus, que recebe mensagens relacionadas à status de vários aspectos do leitor e onSample, que recebe amostras descompactadas do leitor.
  2. O aplicativo passa ao leitor o nome de um arquivo a ser lido. Quando o leitor abre o arquivo, ele atribui um número de saída a cada fluxo. Se o arquivo usar exclusão mútua, o leitor atribuirá uma única saída para todos os fluxos mutuamente exclusivos.
  3. O aplicativo obtém informações sobre a configuração das várias saídas do leitor. As informações coletadas permitirão que o aplicativo renderize corretamente exemplos de mídia.
  4. O aplicativo instrui o leitor a começar a ler dados do arquivo. O leitor começa a fornecer exemplos descompactados para o retorno de chamada OnSample um de cada vez em buffers encapsulados em objetos de buffer. Os exemplos entregues pelo leitor estão em ordem de tempo de apresentação. O leitor continuará fornecendo amostras até ser interrompido pelo aplicativo ou até que o final do arquivo seja atingido.
  5. O aplicativo é responsável por renderizar dados depois que eles são entregues pelo leitor. O SDK do Formato de Mídia do Windows não fornece rotinas de renderização. Normalmente, os aplicativos usarão outros SDKs para renderizar dados, como o SDK do Microsoft DirectX® ou as funções multimídia do Microsoft SDK da Plataforma Windows.
  6. Quando a leitura é concluída, o aplicativo instrui o leitor a fechar o arquivo.

Essas etapas são ilustradas no aplicativo de exemplo AudioPlayer, entre outras. Para obter mais informações, consulte Aplicativos de exemplo.

O leitor também dá suporte a funcionalidades mais avançadas. O leitor permite que você faça o seguinte:

  • Pausar a reprodução de um arquivo.
  • Recuperar estatísticas de desempenho do leitor.
  • Controlar a seleção de fluxo para fluxos mutuamente exclusivos.
  • Alocar buffers manualmente para saída.
  • Forneça seu próprio relógio.
  • Recupere o status de operações de arquivo (buffer, download ou salvamento).
  • Abra um arquivo usando a interface COM padrão, IStream.
  • Procure pontos específicos em um arquivo ASF.
  • Leia os dados do perfil do cabeçalho do arquivo.

As seções a seguir descrevem o uso do objeto leitor em detalhes.

Lendo arquivos ASF

Objeto de leitor