Condividi tramite


struttura KSAUDIO_CHANNEL_CONFIG (ksmedia.h)

La struttura KSAUDIO_CHANNEL_CONFIG specifica la configurazione dei canali nel formato dati di un flusso audio.

Sintassi

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

Membri

ActiveSpeakerPositions

Specifica sia il numero di canali che l'assegnazione di tali canali alle posizioni del parlante. Questo membro è una maschera di bit in cui ogni bit all'interno della maschera corrisponde a una particolare posizione dell'altoparlante. Se è impostato un bit di maschera, il flusso audio contiene un canale assegnato alla posizione dell'altoparlante rappresentata dal bit della maschera. Il numero di canali nel flusso viene ottenuto conteggiando il numero di numeri visualizzati nella maschera di bit. Per altre informazioni, vedere la sezione Osservazioni seguente.

Osservazioni

Questa struttura viene utilizzata per impostare o ottenere il valore dei dati per la proprietà KSPROPERTY_AUDIO_CHANNEL_CONFIG.

Nella tabella seguente vengono illustrati i bit di flag definiti per il membro activeSpeakerPositions.

Posizione voce Bit flag
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

Ogni formato di dati audio contiene canali per una o più posizioni dell'altoparlante precedente. Il numero di canali è semplicemente uguale al numero di bit di flag diverso da zero nel membro ActiveSpeakerPositions.

Le posizioni relative dei canali all'interno di ogni blocco di dati audio seguono sempre lo stesso ordinamento relativo dei bit di flag nella tabella precedente. Ad esempio, se ActiveSpeakerPositions contiene il valore 0x00000033, il formato definisce quattro canali audio assegnati per la riproduzione rispettivamente agli altoparlanti front-left, front-right, back-left e back-right. I dati del canale devono essere interleaved in tale ordine all'interno di ogni blocco. Si tratta della configurazione KSAUDIO_SPEAKER_QUAD visualizzata nella seconda delle due tabelle seguenti.

La tabella seguente illustra le configurazioni dell'altoparlante definite per il DVD.

Configurazione Posizione voce
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

La tabella seguente illustra le configurazioni dell'altoparlante definite per DirectSound.

Configurazione Posizioni voce
KSAUDIO_SPEAKER_DIRECTOUT 0 (senza altoparlanti)
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

La configurazione del parlante KSAUDIO_SPEAKER_7POINT1 è obsoleta e non è più supportata.

Nella tabella precedente, la costante KSAUDIO_SPEAKER_DIRECTOUT ha un valore pari a zero, il che significa che nessuna posizione voce viene assegnata ai canali nel flusso multicanale. Ad esempio, channel zero potrebbe rappresentare le percussioni, channel 1 potrebbe rappresentare tromba, canale 2 potrebbe rappresentare la voce e così via. In questa configurazione, i canali nel flusso di input vengono restituiti direttamente all'hardware senza modifiche e senza essere interpretati come posizioni voce. Per altre informazioni, vedere DSSPEAKER_DIRECTOUT Configurazione voce.

La configurazione dell'altoparlante per un formato surround a 5.1 canali è definita dalla costante KSAUDIO_SPEAKER_5POINT1_SURROUND nella tabella precedente. Il layout geometrico degli altoparlanti è illustrato nella figura seguente, che mostra le posizioni degli altoparlanti front-left, front-right, front-center, side-left e side-right. La figura omette l'altoparlante a bassa frequenza perché non è bidirezionale.

Diagramma che illustra una configurazione del parlante surround da 5.1 canali; l'altoparlante a bassa frequenza non viene visualizzato.

Per questo esempio, l'elenco seguente mostra l'ordinamento dei sei canali all'interno di ogni blocco di dati audio:

  1. SPEAKER_FRONT_LEFT

  2. SPEAKER_FRONT_RIGHT

  3. SPEAKER_FRONT_CENTER

  4. SPEAKER_LOW_FREQUENCY

  5. SPEAKER_SIDE_LEFT

  6. SPEAKER_SIDE_RIGHT

Per un formato PCM con dimensioni del campione a 16 bit, ogni blocco di dati audio occupa 12 byte, ordinati come illustrato nella tabella seguente.

Byte Dati audio
0 Anteriore sinistra (8 LSB)
1 Front Left (8 MSB)
2 Anteriore destra (8 LSB)
3 Front right (8 MSB)
4 Front Center (8 LSB)
5 Front Center (8 MSB)
6 Bassa freq (8 LSB)
7 Bassa freq (8 MB)
8 Lato sinistro (8 LSB)
9 Lato sinistro (8 MB)
10 Lato destro (8 LSB)
11 Lato destro (8 MB)

Fabbisogno

Requisito Valore
intestazione ksmedia.h (include Ksmedia.h)

Vedere anche

KSPROPERTY_AUDIO_CHANNEL_CONFIG

WAVEFORMATEXTENSIBLE