我想在不使用音频会话的情况下请求 16k Hz 的采样率,但到目前为止还没有成功。
在配置麦克风/扬声器之前通过 AudioUnitGetProperty/SampleRate 查询硬件会显示 mSampleRate 为 0,文档中将其描述为暗示支持任何采样率,但也指出硬件实际上会为您提供最接近的它支持。在我请求 16k 并再次查询硬件后,麦克风和扬声器的 mSampleRate 分别为 44100。使用 AudioUnitGetProperty / SampleRate 查询输入/输出总线的输入/输出范围在所有情况下都会返回 0,就像使用 StreamFormat 的等效查询一样。尽管会话未配置或初始化,但使用 AudioSessionGetProperty / CurrentHardwareSampleRate 查询返回 44100。使用音频会话时一切正常,
我也不清楚,当使用音频会话并请求 16k Hz 时,会话是否在输入总线的输入和输出范围之间悄悄转换为 16k,或者硬件是否确实支持上述“任何”采样率在文档中。拥有硬件支持的采样率列表也很好——很难理解为什么没有可查询的列表。
我对任何描述如何执行此操作(无需会话)或准确解释我可以将输入总线的输出范围设置为哪些采样率的相关文档感兴趣。我在这里看到了各种线程中的讨论,它必须是 44.1k 的降档,但到目前为止我还没有找到任何支持该断言的文档。
非常感谢。