转换 Speaker-Configuration 请求
注意 此信息适用于 Windows XP 和更早版本的操作系统。 从 Windows Vista 开始,IDirectSound::GetSpeakerConfig 和 IDirectSound::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。