转换 Speaker-Configuration 请求

注意 此信息适用于 Windows XP 和更早版本的操作系统。 从 Windows Vista 开始,IDirectSound::GetSpeakerConfigIDirectSound::SetSpeakerConfig 已弃用。

当应用程序调用 IDirectSound::SetSpeakerConfig(请参阅 Microsoft Windows SDK 文档)更改扬声器配置时,DirectSound 会将指定的 DSSPEAKER_Xxx 扬声器配置参数转换为等效的 KSAUDIO_Xxx 声道配置掩码。 它会将包含此掩码的 KSPROPERTY_AUDIO_CHANNEL_CONFIG 请求发送到表示 DirectSound 设备的筛选器。

下表中,左侧的每个 DSSPEAKER_Xxx 参数与右侧等效的 KSAUDIO_Xxx 声道配置掩码配对。

DSSPEAKER 参数 KSAUDIO 声道配置掩码

DSSPEAKER_DIRECTOUT

KSAUDIO_SPEAKER_DIRECTOUT

DSSPEAKER_HEADPHONE

KSAUDIO_SPEAKER_STEREO

DSSPEAKER_MONO

KSAUDIO_SPEAKER_MONO

DSSPEAKER_STEREO

KSAUDIO_SPEAKER_STEREO

DSSPEAKER_QUAD

KSAUDIO_SPEAKER_QUAD

DSSPEAKER_SURROUND

KSAUDIO_SPEAKER_SURROUND

DSSPEAKER_5POINT1

KSAUDIO_SPEAKER_5POINT1

DSSPEAKER_7POINT1

KSAUDIO_SPEAKER_7POINT1

在上表中,DirectSound 指定其耳机和立体声扬声器配置具有相同的声道掩码,即 KSAUDIO_SPEAKER_STEREO。 为了区分这两种配置,DirectSound 向筛选器发送第二个 set-property 请求,该请求指定扬声器几何图形(请参阅 KSPROPERTY_AUDIO_STEREO_SPEAKER_GEOMETRY)。 若要指示耳机,DirectSound 会使用扬声器几何图形请求传递值 KSAUDIO_STEREO_SPEAKER_GEOMETRY_HEADPHONE。

但是,对于立体声扬声器,SetSpeakerConfig 的调用方可以指定多个可能的 DSSPEAKER_Xxx 立体声扬声器几何图形之一。 这些参数显示在下表的左列中,右侧会显示等效的 KSAUDIO_Xxx 参数。

DSSPEAKER 立体声扬声器几何图形 KSAUDIO 立体声扬声器几何图形

DSSPEAKER_GEOMETRY_WIDE

KSAUDIO_STEREO_SPEAKER_GEOMETRY_WIDE

DSSPEAKER_GEOMETRY_NARROW

KSAUDIO_STEREO_SPEAKER_GEOMETRY_NARROW

DSSPEAKER_GEOMETRY_MIN

KSAUDIO_STEREO_SPEAKER_GEOMETRY_MIN

DSSPEAKER_GEOMETRY_MAX

KSAUDIO_STEREO_SPEAKER_GEOMETRY_MAX

如果调用方未在上面的左列中显式指定其中一个几何图形,则 DirectSound 默认假定 DSSPEAKER_GEOMETRY_WIDE。