共用方式為


KSAUDIO_CHANNEL_CONFIG 結構 (ksmedia.h)

KSAUDIO_CHANNEL_CONFIG 結構會指定音訊數據流數據格式內的通道組態。

語法

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

成員

ActiveSpeakerPositions

指定通道數目,以及這些通道指派給說話者位置。 這個成員是位掩碼,遮罩內的每一個位都會對應至特定的說話者位置。 如果已設定遮罩位,音訊數據流會包含指派給遮罩位所代表說話者位置的通道。 數據流中的通道數目是藉由計算位掩碼中顯示的數位數目來取得。 如需詳細資訊,請參閱接下來的<備註>一節。

備註

這個結構是用來設定或取得 KSPROPERTY_AUDIO_CHANNEL_CONFIG 屬性的數據值。

下表顯示為 ActiveSpeakerPositions 成員定義的旗標位。

喇叭位置 旗標位
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

每個音訊數據格式都包含一或多個上述喇叭位置的通道。 通道數目只會等於 ActiveSpeakerPositions 成員中的非零旗標位數目。

每個音訊數據區塊內的通道相對位置一律會遵循與上表中旗標位相同的相對順序。 例如,如果 ActiveSpeakerPositions 包含值0x00000033,則格式會分別定義四個音訊通道,這些通道會分別指派給左、右、右、左和右後喇叭。 通道數據應該在每個區塊內依該順序交錯。 (這是出現在下列兩個數據表第二個KSAUDIO_SPEAKER_QUAD組態。)

下表顯示針對 DVD 定義的喇叭組態。

設定 喇叭位置
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

下表顯示針對 DirectSound 定義的說話者設定。

設定 演講者位置
KSAUDIO_SPEAKER_DIRECTOUT 0 (沒有說話者)
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

KSAUDIO_SPEAKER_7POINT1喇叭設定已過時,不再支援。

在上表中,常數KSAUDIO_SPEAKER_DIRECTOUT值為零,這表示不會將喇叭位置指派給多重通道數據流中的通道。 例如,通道零可能代表擷取、通道 1 可能代表擷取、通道 2 可能代表語音等等。 在此設定中,輸入數據流中的通道會直接輸出到硬體,而不需修改,而不會解譯為喇叭位置。 如需詳細資訊,請參閱 DSSPEAKER_DIRECTOUT說話者設定

5.1 通道環繞格式的喇叭組態是由上表中的常數KSAUDIO_SPEAKER_5POINT1_SURROUND所定義。 下圖顯示喇叭的幾何版面配置,其中顯示左、右、中、左和右方喇叭的位置。 此圖省略低頻率喇叭,因為它是非雙向的。

說明 5.1 通道環繞喇叭組態的圖表;不會顯示低頻率喇叭。

在這裡範例中,下列清單顯示每個音訊資料區塊內六個通道的順序:

  1. SPEAKER_FRONT_LEFT

  2. SPEAKER_FRONT_RIGHT

  3. SPEAKER_FRONT_CENTER

  4. SPEAKER_LOW_FREQUENCY

  5. SPEAKER_SIDE_LEFT

  6. SPEAKER_SIDE_RIGHT

對於具有16位樣本大小的PCM格式,每個音訊數據區塊都會佔用12個字節,如下表所示。

Byte 音訊資料
0 左前 (8 個 LSB)
1 左前 (8 個 MSB)
2 右 (8 個 LSB)
3 右 (8 個 MSB)
4 Front Center (8 個 LSB)
5 Front Center (8 個 MSB)
6 低頻率 (8 個 LSB)
7 低頻率 (8 個 MSB)
8 側左 (8 個 LSB)
9 側邊左 (8 個 MSB)
10 右側 (8 個 LSB)
11 右側 (8 個 MSB)

規格需求

需求
標頭 ksmedia.h (包含 Ksmedia.h)

另請參閱

KSPROPERTY_AUDIO_CHANNEL_CONFIG

波地ATEXTENSIBLE