KSAUDIO_MICROPHONE_COORDINATES 结构 (ksmedia.h)

KSAUDIO_MICROPHONE_COORDINATES结构指定麦克风阵列中单个麦克风的类型和坐标。

语法

typedef struct {
  USHORT usType;
  SHORT  wXCoord;
  SHORT  wYCoord;
  SHORT  wZCoord;
  SHORT  wVerticalAngle;
  SHORT  wHorizontalAngle;
} KSAUDIO_MICROPHONE_COORDINATES, *PKSAUDIO_MICROPHONE_COORDINATES;

成员

usType

指定在此坐标位置使用的麦克风类型。 此成员的值是下表中显示的 KSMICARRAY_MICTYPE 枚举值之一。

麦克风类型
KSMICARRAY_MICTYPE_OMNIDIRECTIONAL 全向
KSMICARRAY_MICTYPE_SUBCARDIOID Sub 心形
KSMICARRAY_MICTYPE_CARDIOID 心形
KSMICARRAY_MICTYPE_SUPERCARDIOID 超级心形
KSMICARRAY_MICTYPE_HYPERCARDIOID 超心形
KSMICARRAY_MICTYPE_8SHAPED 8 形
KSMICARRAY_MICTYPE_VENDORDEFINED 0x0F

如果麦克风的类型为 KSMICARRAY_MICTYPE_VENDORDEFINED,则必须将该值设置为 0x0F。 此外,最重要的位将进一步定义麦克风的类型。

wXCoord

指定麦克风的有符号 X 坐标(以毫米为单位)。 可接受的值范围为 -32768 到 32767(包括 32767)。

wYCoord

指定麦克风的有符号 Y 坐标(以毫米为单位)。 可接受的值范围为 -32768 到 32767(包括 32767)。

wZCoord

指定麦克风的有符号 Z 坐标(以毫米为单位)。 可接受的值范围为 -32768 到 32767(包括 32767)。

wVerticalAngle

指定一个介于 -15708 和 +15708 之间的值。 当除以 10,000 时,它提供弧度角度测量。

wHorizontalAngle

指定一个介于 -31416 和 +31416 之间的值。 当除以 10,000 时,它提供弧度角度测量。

注解

若要更好地了解 wHorizontalAnglewVerticalAngle 的说明,请考虑下图:

显示数组中三个麦克风 (麦克风 1、麦克风 2 和麦克风 3) 的关系图。Mic 2 和 Mic 3 彼此平行,中心线与 x 轴平行,其方向没有垂直角度。麦克风 1 的中心线与 x 轴不平行,并且其方向也有垂直角度。

x 为从麦克风阵列中心指向用户最可能的位置的轴,即垂直于屏幕。 正向是针对用户,负值是屏幕后面。 让 y 与 x 轴垂直的水平轴,即从屏幕左侧到右侧。 正是用户的权利;负数是用户的左侧。 让 z 为垂直轴。

现在假设数组中有三个麦克风,如上图所示。 还假设, (麦克风 1) 的麦克风之一指向与 x 轴不平行的水平方向,如 通过麦克风 1 的蓝色中心线所示。 现在,当你想象一条直线穿过 (x,y,z) 坐标系的原点 (0,0,0) ,并且与 麦克风 1 的中心线平行时,你会发现正 x 轴与麦克风中心线在 x-y 平面上的投影之间存在水平角度。 此角度由 wHorizontalAngle 表示。

如果其中一个麦克风(例如 麦克风 1)恰好向下浸入或抬高,则此麦克风的中心线与中心线在 x-y 平面上的投影之间也会有垂直角度。 此角度由 wVerticalAngle 表示。

有关如何在 Windows 中处理麦克风阵列的详细信息,请参阅 Windows 中的麦克风阵列支持 白皮书。

要求

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