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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Para implementar mensagens de leitor no retorno de chamada do OnStatus
- Para implementar o retorno de chamada onSample
- Para criar um leitor e abrir um arquivo
- Para recuperar exemplos de mídia com o leitor assíncrono
- Para procurar por tempo usando o leitor assíncrono
- Para procurar por número de quadro usando o leitor assíncrono
- Para procurar por código de hora SMPTE usando o leitor assíncrono
- Para buscar marcadores
- Para pausar ou parar a reprodução
- Para obter estatísticas de desempenho do leitor
- Para usar a seleção manual de fluxo
- Para entregar amostras compactadas com o leitor assíncrono
Tópicos relacionados