Compartilhar via


estrutura KSAUDIO_CHANNEL_CONFIG (ksmedia.h)

A estrutura KSAUDIO_CHANNEL_CONFIG especifica a configuração de canais no formato de dados de um fluxo de áudio.

Sintaxe

typedef struct {
  LONG ActiveSpeakerPositions;
} KSAUDIO_CHANNEL_CONFIG, *PKSAUDIO_CHANNEL_CONFIG;

Membros

ActiveSpeakerPositions

Especifica o número de canais e a atribuição desses canais para posições de locutor. Esse membro é uma máscara de bits na qual cada bit dentro da máscara corresponde a uma posição de alto-falante específica. Se um bit de máscara for definido, o fluxo de áudio conterá um canal atribuído à posição do alto-falante que o bit de máscara representa. O número de canais no fluxo é obtido contando quantos números aparecem na máscara de bits. Para obter mais informações, consulte a seção Comentários a seguir.

Comentários

Essa estrutura é usada para definir ou obter o valor de dados para a propriedade KSPROPERTY_AUDIO_CHANNEL_CONFIG .

A tabela a seguir mostra os bits de sinalizador definidos para o membro ActiveSpeakerPositions .

Posição do alto-falante Bit de sinalizador
SPEAKER_FRONT_LEFT 0x1
SPEAKER_FRONT_RIGHT 0x2
SPEAKER_FRONT_CENTER 0x4
SPEAKER_LOW_FREQUENCY 0x8
SPEAKER_BACK_LEFT 0x10
SPEAKER_BACK_RIGHT 0x20
SPEAKER_FRONT_LEFT_OF_CENTER 0x40
SPEAKER_FRONT_RIGHT_OF_CENTER 0x80
SPEAKER_BACK_CENTER 0x100
SPEAKER_SIDE_LEFT 0x200
SPEAKER_SIDE_RIGHT 0x400
SPEAKER_TOP_CENTER 0x800
SPEAKER_TOP_FRONT_LEFT 0x1000
SPEAKER_TOP_FRONT_CENTER 0x2000
SPEAKER_TOP_FRONT_RIGHT 0x4000
SPEAKER_TOP_BACK_LEFT 0x8000
SPEAKER_TOP_BACK_CENTER 0x10000
SPEAKER_TOP_BACK_RIGHT 0x20000

Cada formato de dados de áudio contém canais para uma ou mais das posições anteriores do locutor. O número de canais simplesmente é igual ao número de bits de sinalizador diferente de zero no membro ActiveSpeakerPositions .

As posições relativas dos canais dentro de cada bloco de dados de áudio sempre seguem a mesma ordenação relativa que os bits de sinalizador na tabela anterior. Por exemplo, se ActiveSpeakerPositions contiver o valor 0x00000033, o formato definirá quatro canais de áudio atribuídos para reprodução aos alto-falantes front-left, front-right, back-left e back-right, respectivamente. Os dados do canal devem ser intercalados nessa ordem dentro de cada bloco. (Essa é a configuração KSAUDIO_SPEAKER_QUAD que aparece no segundo das duas tabelas a seguir.)

A tabela a seguir mostra as configurações do locutor definidas para DVD.

Configuração Posição do alto-falante
KSAUDIO_SPEAKER_GROUND_FRONT_LEFT SPEAKER_FRONT_LEFT
KSAUDIO_SPEAKER_GROUND_FRONT_CENTER SPEAKER_FRONT_CENTER
KSAUDIO_SPEAKER_GROUND_FRONT_RIGHT SPEAKER_FRONT_RIGHT
KSAUDIO_SPEAKER_GROUND_REAR_LEFT SPEAKER_BACK_LEFT
KSAUDIO_SPEAKER_GROUND_REAR_RIGHT SPEAKER_BACK_RIGHT
KSAUDIO_SPEAKER_TOP_MIDDLE SPEAKER_TOP_CENTER
KSAUDIO_SPEAKER_SUPER_WOOFER SPEAKER_LOW_FREQUENCY

A tabela a seguir mostra as configurações do locutor definidas para DirectSound.

Configuração Posições do alto-falante
KSAUDIO_SPEAKER_DIRECTOUT 0 (sem alto-falantes)
KSAUDIO_SPEAKER_MONO SPEAKER_FRONT_CENTER
KSAUDIO_SPEAKER_STEREO SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
KSAUDIO_SPEAKER_QUAD SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_BACK_LEFT
SPEAKER_BACK_RIGHT
KSAUDIO_SPEAKER_SURROUND SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_FRONT_CENTER
SPEAKER_BACK_CENTER
KSAUDIO_SPEAKER_5POINT1 SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_FRONT_CENTER
SPEAKER_LOW_FREQUENCY
SPEAKER_BACK_LEFT
SPEAKER_BACK_RIGHT
KSAUDIO_SPEAKER_5POINT1_SURROUND SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_FRONT_CENTER
SPEAKER_LOW_FREQUENCY
SPEAKER_SIDE_LEFT
SPEAKER_SIDE_RIGHT
KSAUDIO_SPEAKER_7POINT1 SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_FRONT_CENTER
SPEAKER_LOW_FREQUENCY
SPEAKER_BACK_LEFT
SPEAKER_BACK_RIGHT
SPEAKER_FRONT_LEFT_OF_CENTER
SPEAKER_FRONT_RIGHT_OF_CENTER
KSAUDIO_SPEAKER_7POINT1_SURROUND SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_FRONT_CENTER
SPEAKER_LOW_FREQUENCY
SPEAKER_BACK_LEFT
SPEAKER_BACK_RIGHT
SPEAKER_SIDE_LEFT
SPEAKER_SIDE_RIGHT

A configuração do alto-falante KSAUDIO_SPEAKER_7POINT1 está obsoleta e não tem mais suporte.

Na tabela anterior, a constante KSAUDIO_SPEAKER_DIRECTOUT tem um valor zero, o que significa que nenhuma posição de locutor é atribuída aos canais no fluxo multicanal. Por exemplo, o canal zero pode representar percussão, o canal 1 pode representar trompete, o canal 2 pode representar voz e assim por diante. Nessa configuração, os canais no fluxo de entrada são gerados diretamente para o hardware sem modificação e sem serem interpretados como posições de alto-falante. Para obter mais informações, consulte DSSPEAKER_DIRECTOUT Configuração do Locutor.

A configuração do alto-falante para um formato surround de 5,1 canais é definida pela constante KSAUDIO_SPEAKER_5POINT1_SURROUND na tabela anterior. O layout geométrico dos alto-falantes é mostrado na figura a seguir, que mostra as posições dos alto-falantes front-left, front-right, front-center, side-left e side-right. A figura omite o alto-falante de baixa frequência porque ele não é direcional.

Diagrama ilustrando uma configuração de alto-falante surround de 5,1 canais; o alto-falante de baixa frequência não é mostrado.

Para este exemplo, a lista a seguir mostra a ordenação dos seis canais dentro de cada bloco de dados de áudio:

  1. SPEAKER_FRONT_LEFT

  2. SPEAKER_FRONT_RIGHT

  3. SPEAKER_FRONT_CENTER

  4. SPEAKER_LOW_FREQUENCY

  5. SPEAKER_SIDE_LEFT

  6. SPEAKER_SIDE_RIGHT

Para um formato PCM com um tamanho de exemplo de 16 bits, cada bloco de dados de áudio ocupa 12 bytes, que são ordenados conforme mostrado na tabela a seguir.

Byte Dados de áudio
0 Front Left (8 LSBs)
1 Front Left (8 MSBs)
2 Front Right (8 LSBs)
3 Front Right (8 MSBs)
4 Front Center (8 LSBs)
5 Front Center (8 MSBs)
6 Low Freq (8 LSBs)
7 Baixa freq (8 MSBs)
8 Side Left (8 LSBs)
9 Side Left (8 MSBs)
10 Lado Direito (8 LSBs)
11 Lado Direito (8 MSBs)

Requisitos

Requisito Valor
Cabeçalho ksmedia.h (inclua Ksmedia.h)

Confira também

KSPROPERTY_AUDIO_CHANNEL_CONFIG

WAVEFORMATEXTENSIBLE