Obtendo informações de perfil na reprodução

[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.]

As informações do perfil usado para criar um arquivo são armazenadas na seção de cabeçalho do arquivo. Ambos os objetos leitores podem acessar as informações de perfil do cabeçalho do arquivo. Há vários motivos pelos quais talvez você queira acessar dados de perfil do leitor. Mais comumente, você precisará recuperar informações sobre fluxos, objetos de exclusão mútua e objetos de compartilhamento de largura de banda.

Tanto o objeto leitor assíncrono quanto o objeto leitor síncrono podem ser consultados para a interface IWMProfile . Nenhuma alteração feita nas informações do perfil pode afetar o arquivo no leitor. Para obter mais informações sobre como acessar informações de perfil, consulte Trabalhando com perfis.

Informações de fluxo

Às vezes, é importante saber como um fluxo é configurado. Ao recuperar propriedades de mídia de qualquer um dos objetos de leitor, você obtém as propriedades das saídas. As propriedades de saída descrevem como os dados descompactados de um fluxo serão entregues pelo leitor, não como o fluxo é configurado no arquivo ASF.

Ao receber amostras de fluxo descompactadas de qualquer objeto leitor, você deve usar as informações de perfil para identificar o formato dos dados compactados. Isso é particularmente importante se você vai gravar o fluxo compactado em outro arquivo ASF.

Você também precisa acessar informações de fluxo ao usar a recompactação inteligente para transcodificar um fluxo de áudio para uma taxa de bits mais baixa.

Talvez você queira determinar se um fluxo foi gravado usando a codificação de VBR (taxa de bits variáveis). Você não pode acessar nenhuma informação da VBR da interface IWMProfile de qualquer objeto leitor. Isso ocorre porque as informações da VBR não são armazenadas no arquivo após a codificação. Você pode determinar se um fluxo foi criado usando a codificação VBR obtendo um ponteiro para a interface IWMHeaderInfo do objeto leitor e chamando IWMHeaderInfo::GetAttributeByName. Você deve especificar o número do fluxo e passar g_wszIsVBR como o nome do atributo.

Informações de exclusão mútua

Se quiser criar um aplicativo de leitura que use exclusão mútua, você desejará acessar as informações sobre quaisquer objetos de exclusão mútua incluídos no perfil. Para todos os tipos de exclusão mútua, exceto taxa de bits, o aplicativo de leitura é responsável por qualquer alternância de fluxo necessária. Para alternar fluxos, você precisa saber quais fluxos são quais.

Informações de compartilhamento de largura de banda

Os objetos de compartilhamento de largura de banda incluídos em um perfil são incluídos apenas para fins informativos. Nem o objeto gravador nem nenhum dos objetos leitores toma qualquer ação como resultado do compartilhamento de dados de largura de banda. Se você quiser usar o compartilhamento de largura de banda em seu aplicativo de leitura, deverá acessar as informações de compartilhamento de largura de banda dos dados do perfil.

Observação

Nem todas as informações do perfil usado para criar um arquivo estão presentes no cabeçalho do arquivo. Como regra geral, os dados usados apenas no momento da codificação não são persistidos no arquivo. Isso inclui configurações de entrada que foram definidas usando o método IWMWriterAdvanced2::SetInputSetting , bem como propriedades definidas usando o método IWMPropertyVault::SetProperty .

 

IWMProfile Interface

Lendo arquivos ASF