Trabalhando com High-Resolution áudio PCM

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

Alguns dos formatos de entrada para o codec Windows Media Audio 9 Professional e o codec sem perda do Windows Media Audio 9 são formatos PCM de alta resolução. Esses são formatos PCM que têm mais de dois canais ou mais de 16 bits por amostra (áudio com mais de dois canais também é chamado de áudio multicanal).

Esses formatos são configurados usando uma extensão estruturada da estrutura WAVEFORMATEX , chamada WAVEFORMATEXTENSIBLE. A estrutura WAVEFORMATEXTENSIBLE inclui informações sobre os canais incluídos no áudio. Essa estrutura é necessária ao usar áudio PCM de alta resolução, pois algumas APIs do Windows não aceitarão estruturas WAVEFORMATEX que contenham valores de alta resolução.

Os formatos PCM de alta resolução têm 22 bytes de dados estendidos, que é especificado no membro cbSize da estrutura WAVEFORMATEX . Os formatos de áudio do Windows Media de alta resolução não usam a estrutura WAVEFORMATEXTENSIBLE , mas têm dados estendidos acrescentados à estrutura WAVEFORMATEX .

Os codecs de áudio do Windows Media só dão suporte à decodificação para formatos PCM de alta resolução quando o aplicativo está em execução no Windows XP ou posterior. Em versões anteriores do Microsoft Windows, os codecs decodificam para um formato com um máximo de 16 bits por exemplo e dois canais. Além disso, você deve especificar que deseja que o codec decodique para PCM de alta definição definindo a configuração de saída g_wszEnableDiscreteOutput como TRUE usando o método IWMReaderAdvanced2::SetOutputSetting . Depois de fazer essa chamada, as saídas enumeradas pelo leitor incluirão formatos de alta definição.

O áudio multicanal requer mais configuração. Para obter mais informações, consulte Lendo áudio multicanal.

Trabalhando com entradas