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

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 você pode querer 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 de 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 não compactados de um fluxo serão entregues pelo leitor, não como o fluxo é configurado no arquivo ASF.

Ao receber exemplos de fluxo não compactados 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 VBR (taxa de bits variável). Você não pode acessar nenhuma informação VBR da interface IWMProfile de nenhum dos objetos leitores. 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 você 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 a 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

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 realiza 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 somente no momento da codificação não são persistentes 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