Partilhar via


Lendo arquivos ASF

[A funcionalidade associada a esta página, Windows Media Format 11 SDK, é uma funcionalidade herdada. Foi substituído pelo Source Reader e pelo Sink Writer. Os do Source Reader e os do Sink Writer foram otimizados para o Windows 10 e o Windows 11. A Microsoft recomenda vivamente que o novo código utilize o Leitor de Origem e o Gravador de Destino em vez do Windows Media Format 11 SDK, 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 SDK do Windows Media Format pode ser usado para fornecer amostras de mídia de um arquivo ASF. Dois objetos são usados para recuperar amostras, o objeto leitor e o objeto leitor síncrono.

O objeto reader é o objeto de leitura original no SDK do Windows Media Format. O objeto reader usa uma arquitetura assíncrona para enviar amostras para um aplicativo. As aplicações criadas usando o objeto reader devem implementar funções de retorno que respondam às várias mensagens e eventos resultantes deste modelo multithreading. Para maior clareza, esta seção se referirá ao objeto leitor como leitor assíncrono.

O objeto leitor síncrono é novo para esta versão do Windows Media Format SDK. O leitor síncrono não usa vários threads no processamento de amostras de arquivos ASF. Um aplicativo criado usando o leitor síncrono recupera amostras sob demanda, em vez de esperar que o leitor as envie.

Ao criar um aplicativo para ler arquivos ASF, você deve escolher qual objeto leitor usar. Em geral, os aplicativos projetados para fornecer conteúdo baseado no Windows Media devem ser criados usando o leitor assíncrono, enquanto os aplicativos projetados para editar arquivos ASF devem ser criados com o leitor síncrono.

A tabela a seguir lista os principais recursos de ambos os objetos de leitura. Use esta tabela para ajudar a determinar qual objeto usar para seu aplicativo.

Funcionalidade Leitor assíncrono Leitor de sincronização
Ler amostras não comprimidas por número de saída Sim Sim
Ler amostras compactadas por número de fluxo de dados Sim Sim
Ler amostras não comprimidas por número de fluxo Não Sim
Ler a partir do site da Internet Sim Não
Ler metadados Sim Sim
Avance para o momento da apresentação Sim Sim
Tentar enquadrar Sim Sim
Procurar marcador Sim Não
Alternar entre a entrega de amostras comprimidas e não comprimidas durante a reprodução Não Sim
Abrir arquivos usando interface IStream Sim Sim

 

As seções a seguir fornecem mais informações sobre como trabalhar com os dois objetos de leitura.

Secção Descrição
Trabalhando com Resultados Descreve como usar e manipular saídas. Aplica-se a ambos os objetos de leitura.
Alocar buffers para leitura de ficheiros Descreve como usar seu próprio pool de buffers para armazenar amostras entregues pelo leitor ou leitor síncrono.
Leitura de metadados durante a reprodução Descreve como aproveitar o suporte a metadados na reprodução. Aplica-se a ambos os objetos de leitura.
Obter informações de perfil durante a reprodução Descreve como acessar informações de perfil para arquivos abertos. Aplica-se a ambos os objetos de leitura.
Leitura de áudio multicanal Descreve como configurar o gravador para decodificar corretamente o áudio multicanal.
Renderização de conteúdo Discute os problemas relacionados à renderização de amostras não compactadas. Aplica-se a ambos os objetos de leitura.
Obtendo o melhor desempenho ao procurar vídeos Descreve maneiras de melhorar o desempenho de busca de vídeo.
Leitura de Ficheiros com o Leitor Assíncrono Descreve como ler arquivos ASF usando o objeto leitor assíncrono.
leitura de arquivos com o leitor síncrono Descreve como ler arquivos ASF usando o objeto leitor síncrono.
Ativando o DirectX Video Acceleration Descreve como implementar o DirectX Video Acceleration para usar os recursos de aceleração de hardware de algumas placas de vídeo para decodificar vídeo.

 

Guia de Programação

objeto do leitor

objeto leitor síncrono