Partilhar via


Objeto Reader

[A funcionalidade associada a esta página, Windows Media Format 11 SDK, é uma funcionalidade herdada. Foi substituído por Source Reader e Sink Writer. do 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 objeto leitor lê amostras de dados de arquivos de mídia. O objeto leitor atualmente suporta arquivos usando a estrutura de arquivos de formato de sistema avançado (ASF), bem como arquivos MP3. Os dados fornecidos pelo objeto leitor não são compactados e estão prontos para renderização por padrão, embora as amostras possam ser entregues sem serem descompactadas, se desejado. As amostras são entregues de forma assíncrona a partir do objeto leitor; Você deve configurar uma função de retorno de chamada para recebê-los. Para reprodução síncrona de arquivos ASF, use o objeto leitor síncrono. Nem o leitor nem o leitor síncrono processam quaisquer dados. Você deve fornecer suas próprias rotinas de renderização para exibir a mídia recuperada de um arquivo.

Quando um arquivo contém mídia codificada que pode ser decodificada com um codec suportado pelo objeto leitor, você pode controlar o formato da saída não compactada. Para alterar o formato da saída descompactada de um fluxo, você deve recuperar o objeto de propriedades de mídia de saída padrão para esse fluxo, fazer alterações nele e reatribuí-lo ao fluxo no leitor. Os objetos de propriedades de mídia de saída são subordinados ao objeto reader e só devem ser criados usando o métodoIWMReader::GetOutputProps.

O objeto reader é criado pela função WMCreateReader, que define um ponteiro para uma interface IWMReader. As outras interfaces do objeto reader podem ser obtidas chamando o QueryInterface método.

As interfaces a seguir são suportadas pelo objeto reader.

Interface Descrição
IReferenceClock Fornece acesso ao relógio do sistema usado pelo leitor.
IWMDRMReader Gerencia a aquisição de licenças, propriedades DRM e a individualização do cliente.
IWMDRMReader2 Fornece acesso a licenças que usam níveis de proteção de saída (OPL) para especificar direitos.
IWMHeaderInfo Define e recupera informações de cabeçalho, incluindo metadados, marcadores de e dados de script.
IWMHeaderInfo2 Recupera informações sobre os codecs que foram usados para codificar o conteúdo no arquivo. Herda todos os métodos de IWMHeaderInfo.
IWMHeaderInfo3 Suporta grandes tamanhos de atributos, nomes de atributos duplicados e suporte a vários idiomas. Herda todos os métodos de IWMHeaderInfo e IWMHeaderInfo2.
IWMPacketSize Recupera o tamanho do maior pacote no arquivo carregado no leitor.
IWMPacketSize2 Recupera o tamanho do menor pacote no arquivo carregado no leitor.
IWMProfile Fornece acesso às informações de perfil do arquivo carregado no leitor.
IWMProfile2 Recupera o identificador global exclusivo (GUID), se houver, associado ao perfil. Herda todos os métodos de IWMProfile.
IWMProfile3 Suporta compartilhamento de largura de banda e informações de priorização de fluxo no perfil. Herda todos os métodos de IWMProfile e IWMProfile2.
IWMReader Fornece recursos básicos de leitura de arquivos, incluindo operações como abrir, fechar, iniciar, pausar, retomar, parar e obter e definir as propriedades de saída.
IWMReaderAccelerator Comunica-se com a aceleração de vídeo DirectX.
IWMReaderAdvanced Fornece recursos avançados do leitor, como um relógio fornecido pelo usuário, alocação de buffer, estatísticas de retorno e notificações de seleção de fluxo.
IWMReaderAdvanced2 Fornece uma gama adicional de métodos avançados para um objeto leitor existente. Herda todos os métodos do IWMReaderAdvanced.
IWMReaderAdvanced3 Fornece busca avançada e controle de streaming. Herda todos os métodos de IWMReaderAdvanced e IWMReaderAdvanced2.
IWMReaderAdvanced4 Fornece opções avançadas de leitura, incluindo suporte a vários idiomas. Herda todos os métodos de IWMReaderAdvanced, IWMReaderAdvanced2e IWMReaderAdvanced3.
IWMReaderNetworkConfig Controla as definições de configuração de rede.
IWMReaderNetworkConfig2 Fornece acesso a definições avançadas de configuração de rede. Herda todos os métodos de IWMReaderNetworkConfig.
IWMReaderStreamClock Define e cancela temporizadores em relógios de fluxo e recupera o valor atual de um relógio de fluxo especificado.
IWMReaderTimecode Fornece informações sobre intervalos de códigos de tempo SMPTE no arquivo carregado no leitor.
IWMReaderTypeNegotiation Testa se as alterações nas propriedades de saída de um fluxo estão funcionando corretamente.

 

As seguintes interfaces de retorno de chamada podem ser implementadas no aplicativo para acompanhar o progresso de um objeto leitor.

Interface Descrição
IWMCredentialCallback Adquire as credenciais dos usuários e verifica se eles têm permissão para acessar um site remoto.
IWMReaderAllocatorEx Fornece alternativas expandidas para o AllocateForOutput e métodos de AllocateForStream da interface IWMReaderCallbackAdvanced do.
IWMReaderCallback Fornece métodos de retorno de chamada para os métodos Start e Open de IWMReader.
IWMReaderCallbackAdvanced Fornece métodos de retorno de chamada para os métodos do IWMReaderAdvanced interface.
IWMStatusCallback Necessário quando as informações de status devem ser comunicadas ao aplicativo host.

 

Objetos

Lendo arquivos ASF

objeto leitor síncrono