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 子心形
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的说明,请考虑下图:

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

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

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

如果其中一个麦克风(例如,Mic 1)恰好向下倾斜或向上凸起,则此麦克风的中心线与中心线投影到 x-y 平面上的垂直角度。 此角度由 wVerticalAngle 表示。

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

要求

要求 价值
标头 ksmedia.h (包括 Ksmedia.h)