共用方式為


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個字節,如下表所示。

位元組 音訊數據
0 左前方 (8 個 LSB)
1 左前方 (8 個 MSB)
2 右前方 (8 個 LSB)
3 右前方 (8 個 MSB)
4 前端中心 (8 個 LSB)
5 Front Center (8 MSB)
6 低弗雷克 (8 個 LSB)
7 低弗雷克 (8 毫秒)
8 左側 (8 個 LSB)
9 左側 (8 個 MSB)
10 右側 (8 個 LSB)
11 右側 (8 個 MSB)

要求

要求 價值
標頭 ksmedia.h (包括 Ksmedia.h)

另請參閱

KSPROPERTY_AUDIO_CHANNEL_CONFIG

超聲波ATEXTENSIBLE