采样频率的硬件约束
某些音频设备要求适配器筛选器的接收器引脚上的采样频率与来自麦克风的数字输出端口或输入流的频率相匹配。 例如,与 Sound Blaster 16 兼容的硬件通常具有单个晶体,从而限制其输入和输出流以相同的时钟速率运行。 一个可支持其各种板载音频流具有多个时钟速率的适配器可能仍需要将不同时钟速率的数量限制为一些小数。
出于这些原因,适配器驱动程序可能需要限制一个板载流上的采样频率,以便与另一个板载流上的采样频率匹配。 例如,与 Sound Blaster 16 兼容的适配器可能要求适配器接收器引脚上的采样频率与闩锁在输出 DAC 上的计时速率相匹配。
如前所述,KMixer 是 Windows Server 2003、Windows XP、Windows 2000 和 Windows Me/98 中的系统混音器。 当 KMixer 的源引脚连接到适配器的接收器引脚时,KMixer 可能需要调用适配器的 SetFormat 方法(例如,请参阅 IMiniportWavePciStream::SetFormat),以在连接时调整采样频率,从而与其输入中音频流的最高采样频率匹配。 如果适配器无法更改频率(可能是因为它受其他板载流的时钟速率约束),则它可能会使 SetFormat 调用失败。 在这种情况下,KMixer 将通过以连续较低的采样频率进行更多的 SetFormat 调用来响应,直到调用成功。 KMixer 在确定更低的采样频率后,会相应地向下采样其更高的频率输入流。