Lendo áudio de multicanal

O codec Windows Media Audio 9 Professional pode codificar áudio multicanal (mais de dois canais). Ao ler um arquivo com áudio multicanal, você deve configurar a saída corretamente ou o áudio será entregue em uma qualidade menor e em estéreo. Para definir uma saída para entrega de áudio multicanal, você deve definir duas configurações de saída: g _ wszEnableDiscreteOutput e g _ wszSpeakerConfig.

A definição _ de g wszEnableDiscreteOutput como true define o codec para fornecer saída de áudio de alta definição. Áudio de alta definição é codificado pelo codec do Windows Media Audio 9 com amostras de 24 bits em estéreo ou vários canais. Se essa configuração for falsa, somente a saída estéreo de 16 bits será entregue.

O número de alto-falantes no computador de jogo é definido com g _ wszSpeakerConfig. Essa configuração é um valor DWORD definido como uma das constantes de alto-falante DirectSound listadas na tabela a seguir. Para resolver esses nomes de constantes para seu compilador, você deve incluir dsound. h.

Constante Valor Descrição
DSSPEAKER _ directout 0x00000000 O áudio é transmitido diretamente, sem ser configurado para os alto-falantes.
_fone de ouvido DSSPEAKER 0x00000001 O computador cliente está equipado com fones de ouvido.
DSSPEAKER _ mono 0x00000002 O computador cliente está equipado com um monaural palestrante.
DSSPEAKER _ Quad 0x00000003 O computador cliente está equipado com alto-falantes Quadraphonic.
estéreo de DSSPEAKER _ 0x00000004 O computador cliente está equipado com alto-falantes estéreo.
_surround DSSPEAKER 0x00000005 O computador cliente está equipado com alto-falantes surround-sound.
DSSPEAKER _ 5POINT1 0x00000006 O computador cliente é equipado com cinco alto-falantes e um subwoofer.
DSSPEAKER _ 7POINT1 0x00000007 O computador cliente está equipado com sete palestrantes e um subwoofer.

 

Para definir essas configurações, use IWMReaderAdvanced2:: SetOutputSetting.

Por fim, para que os canais sejam impressos de forma discreta, sem dobra para estéreo, você deve definir o tipo de mídia correto na saída seguindo estas etapas:

  1. Chame IWMReader:: GetOutputFormatCount para obter o número de formatos com suporte para a saída de áudio relevante. Os índices de formato de saída são baseados em zero.
  2. Para cada formato com suporte, chame IWMReader:: GetOutputFormat para recuperar a interface IWMOutputMediaProps no objeto de propriedades de mídia de saída.
  3. Chame IWMMediaProps:: GetMediaType para recuperar o tipo de mídia.
  4. Se o tipo de mídia recuperado for o tipo de multicanal desejado, defina-o chamando IWMReader:: SetOutputProps.

Depois de definir a saída discreta e a configuração do alto-falante, os formatos de saída enumerados pelo leitor devem incluir formatos multicanal que usam a estrutura WAVEFORMATEXTENSIBLE . Se você enumerar os formatos de saída antes de definir as propriedades, somente os formatos com 1 ou 2 canais e um máximo de 16 bits por canal serão incluídos. Assim como acontece com outros formatos de áudio, você deve usar apenas os formatos enumerados pelo leitor; Não configure seu próprio.

Observação

Você poderá produzir áudio multicanal somente se seu aplicativo estiver em execução no Microsoft Windows XP ou em uma versão posterior do Microsoft Windows.

 

Entradas, fluxos e saídas

Lendo arquivos ASF

Configurações de saída

Trabalhando com High-Resolution áudio PCM