Android – 如何获取AudioManager / AudioSystem参数列表

AudioManager有一个setParameters方法,它接受string表示forms中的键值对(“parameter_name = parameter_value”)。
它在内部调用本机AudioSystem.setParameters
获取参数值的唯一方法是通过调用调用AudioSystem中相应的本机方法的AudioManager.getParameters方法来获取其名称。

有没有一种方法(使用reflection或其他技术)来获取支持的参数列表(当然,结果将取决于所调用的设备,因为它是平台特定的)?

经过简短的调查,我可以猜测,没有可靠的方法来枚举audio设备参数的所有可用键。 Android头文件定义了一些小的常规参数,可能应该被所有的设备支持。 您可以在这里find实际的键(查找AUDIO_PARAMETER_*macros)。 和实际设备实现的接口 struct audio_hw_device (由供应商实现)只有get_parameters()/set_parameters()并且没有枚举入口点。 所以,没有办法请求支持的参数键的完整列表。

最高层:

  1. 我们有一小组预定义的通用参数
  2. 以应付特定于供应商的参数 – 我们应该从供应商文档或特定设备的硬件相关来源获得额外密钥列表。

任何纠正都是受欢迎的。