KSDSOUND_BUFFERDESC 结构 (ksmedia.h)

KSDSOUND_BUFFERDESC结构描述 DirectSound 缓冲区。

语法

typedef struct {
  ULONG        Flags;
  ULONG        Control;
  WAVEFORMATEX WaveFormatEx;
} KSDSOUND_BUFFERDESC, *PKSDSOUND_BUFFERDESC;

成员

Flags

指定缓冲区配置。 此成员可以设置为以下一个或多个标志位的按位 OR:

KSDSOUND_BUFFER_PRIMARY

指示缓冲区是主声音缓冲区, (用户在游戏) 时听到的缓冲区。

KSDSOUND_BUFFER_STATIC

指示缓冲区将用于静态声音数据。

KSDSOUND_BUFFER_LOCHARDWARE

强制缓冲区使用硬件混合。

KSDSOUND_BUFFER_LOCSOFTWARE

强制将缓冲区存储在系统内存中,并使用软件混合。

Control

指定缓冲区的功能。 缓冲区的功能由一组控件标志表示。 此成员可以设置为以下一个或多个标志位的按位 OR:

KSDSOUND_BUFFER_CTRL_3D

指示缓冲区是具有 3D 控制功能的主缓冲区或辅助缓冲区。 如果设置了此位,则表示缓冲区的 KS 引脚 (KSNODETYPE_3D_EFFECTS) 实现 3D 节点。 如果设置了KSDSOUND_BUFFER_CTRL_HRTF_3D位,则 3D 节点支持可选的 KSPROPSETID_Hrtf3d 属性集。

KSDSOUND_BUFFER_CTRL_FREQUENCY

指示缓冲区具有频率控制功能。 如果设置了此位,则表示缓冲区的引脚KSNODETYPE_SRC) 节点实现采样率转换 (

KSDSOUND_BUFFER_CTRL_HRTF_3D

指示缓冲区使用与头部相关的传输函数 (HRTF) 进行 3D 控制。 如果设置了此位,则还必须设置KSDSOUND_BUFFER_CTRL_3D位。

KSDSOUND_BUFFER_CTRL_PAN

指示缓冲区具有平移控制功能。 如果设置了此位,则表示缓冲区的引脚实现卷节点 (KSNODETYPE_VOLUME) 来控制平移。 有关详细信息,请参阅 DirectSound Node-Ordering 要求

KSDSOUND_BUFFER_CTRL_VOLUME

指示缓冲区具有音量控制功能。 如果设置了此位,表示缓冲区的引脚将实现卷节点 (KSNODETYPE_VOLUME) 来控制流的音量级别。

KSDSOUND_BUFFER_CTRL_POSITIONNOTIFY

指示缓冲区具有位置通知功能。 如果设置了此位,则表示缓冲区的引脚支持 KSPROPERTY_AUDIO_POSITION 属性。

WaveFormatEx

指定缓冲区的波形数据格式。 此成员是 WAVEFORMATEX 类型的结构。

注解

KSDATAFORMAT_DSOUND 结构包含一个 BufferDesc 成员,该成员是KSDSOUND_BUFFERDESC结构。

请注意,可以扩展 KSDSOUND_BUFFERDESC 结构的 WaveFormatEx 成员,以包含其他格式信息 (例如通道配置掩码) 。 有关详细信息,请参阅 WAVEFORMATEXTENSIBLE

要求

要求
Header ksmedia.h (包括 Ksmedia.h)

另请参阅

KSDATAFORMAT_DSOUND

KSNODETYPE_3D_EFFECTS

KSNODETYPE_SRC

KSNODETYPE_VOLUME

KSPROPERTY_AUDIO_POSITION

KSPROPSETID_Hrtf3d

WAVEFORMATEX

WAVEFORMATEXTENSIBLE