标头文件更改

Windows 驱动程序工具包 (WDK) 包含两个头文件,用于定义 Windows 多媒体控制面板支持的扬声器配置:

  • Ksmedia.h 为 KSPROPERTY_AUDIO_CHANNEL_CONFIG 属性请求使用的 KSAUDIO_CHANNEL_CONFIG 结构定义声道掩码。

  • Dsound.h 定义可提交到 IDirectSound::SetSpeakerConfig 方法的扬声器配置标识符列表。 有关此方法的详细信息,请参阅 Windows SDK 文档。

在 Windows Server 2003、Windows XP SP1、Windows 2000 和 Windows Me/98 中,Ksmedia.h 定义下表中针对 5.1 和 7.1 声道流显示的声道掩码。

参数名称 频道掩码 扬声器位置

KSAUDIO_SPEAKER_5POINT1

0x3F

FL、FR、FC、LFE、BL、BR

KSAUDIO_SPEAKER_7POINT1

0xFF

FL、FR、FC、LFE、BL、BR、FLC、FRC

上表中的两个声道掩码表示 5.1 扬声器配置和 7.1 扬声器配置。 为标识相同的两个扬声器配置,Dsound.h 定义了以下扬声器配置 ID:

  #define DSSPEAKER_5POINT1      0x00000006
  #define DSSPEAKER_7POINT1      0x00000007

在 Windows XP SP2 及更高版本的 Windows 中,Ksmedia.h 定义下表中针对 5.1 和 7.1 声道流的声道掩码。

参数名称 频道掩码 扬声器位置

KSAUDIO_SPEAKER_5POINT1

0x3F

FL、FR、FC、LFE、BL、BR

KSAUDIO_SPEAKER_7POINT1_SURROUND

0x63F

FL、FR、FC、LFE、BL、BR、SL、SR

通过比较上述两个表,以下几点是显而易见的:

  • 第一个表中声道掩码 0x3F 的含义在第二个表中未发生更改,尽管在 Windows SP2 和更高版本的 Windows 中,KSAUDIO_SPEAKER_5POINT1 被解释为使用 SL 和 SR 扬声器而非 BL 和 BR。

  • 支持具有 0x63F 值的新声道掩码。 此声道掩码表示 7.1 家庭影院扬声器配置。

  • 注意,在 Windows Vista 和更高版本的 Windows 中,不再支持 KSAUDIO_SPEAKER_7POINT1 扬声器配置。 因此,它不是控制面板中的可用选项。

为了表示同一组扬声器配置,Dsound.h 定义了以下扬声器配置 ID:

  #define DSSPEAKER_5POINT1             0x00000006
  #define DSSPEAKER_7POINT1             0x00000007
  #define DSSPEAKER_7POINT1_SURROUND    0x00000008
  #define DSSPEAKER_7POINT1_WIDE        DSSPEAKER_7POINT1

DSSPEAKER_7POINT1_SURROUND 表示控制面板中的新 7.1 家庭影院扬声器配置。 DSSPEAKER_7POINT1 和 DSSPEAKER_7POINT1_WIDE 都是同一 7.1 范围配置扬声器配置的名称。

有关 DirectSound 的扬声器配置的详细信息,请参阅 DirectSound 扬声器配置设置