Partilhar via


Lendo arquivos com o leitor assíncrono

[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 do Leitor de Origem e do Gravador de Separadores em vez de 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 lê o conteúdo de arquivos ASF usando vários threads e chamadas assíncronas. Os recursos suportados pelo leitor assíncrono o tornam adequado para aplicativos que processam 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 Windows Media Format SDK.

  1. O aplicativo implementa o IWMReaderCallback interface para lidar com mensagens do leitor. Isso inclui dois métodos de retorno de chamada: OnStatus, que recebe mensagens relacionadas ao estado de diferentes aspetos do leitor e OnSample, que recebe amostras não compactadas vindas do leitor.
  2. O aplicativo passa para o leitor o nome de um arquivo para ler. Quando o leitor abre o arquivo, ele atribui um número de saída para cada fluxo. Se o arquivo usa exclusão mútua, o leitor atribui 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 amostras de mídia corretamente.
  4. O aplicativo instrui o leitor a começar a ler os dados do arquivo. O leitor começa a fornecer amostras não compactadas para o retorno de chamada OnSample, uma de cada vez, em buffers encapsulados em objetos de buffer. As amostras entregues pelo leitor estão em ordem de apresentação. O leitor continuará entregando amostras até ser interrompido pelo aplicativo ou até que o final do arquivo seja alcançado.
  5. O aplicativo é responsável por renderizar os dados depois que eles são entregues pelo leitor. O SDK do Windows Media Format 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 SDK da Plataforma Microsoft Windows.
  6. Quando a leitura estiver concluída, o aplicativo instrui o leitor a fechar o arquivo.

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

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

  • Pausar a reprodução de um ficheiro.
  • Obtenha estatísticas de desempenho do leitor.
  • Controle a seleção de fluxos para streams que sejam mutuamente exclusivos.
  • Aloque manualmente os buffers para a saída.
  • Forneça o seu próprio relógio.
  • Recupere o status das operações de arquivo (buffering, 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 a partir do cabeçalho do arquivo.

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

Lendo arquivos ASF

objeto do leitor