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

时间:2015-04-04 20:02:51

标签: android android-audiomanager

AudioManager有一个setParameters方法,接受字符串表示形式的键值对(“parameter_name = parameter_value”)。
在内部,它调用原生AudioSystem.setParameters 获取参数值的唯一方法是,如果您知道它的名称,可以通过调用AudioManager.getParameters方法来调用`AudioSystem'中相应的本机方法。

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

1 个答案:

答案 0 :(得分:6)

经过简单调查后,我猜测没有可靠的方法来枚举音频设备参数的所有可用密钥。 Android标头定义了一小组通用参数,可能应该受到所有设备的支持。您可以找到实际的密钥here(查找AUDIO_PARAMETER_*个宏)。 interface到实际设备实现struct audio_hw_device(由供应商实现)只有get_parameters()/set_parameters()且没有枚举入口点。因此,无法请求支持的参数键的完整列表。

最重要的是:

  1. 我们有一小组预定义的常用参数
  2. 要处理特定于供应商的参数 - 我们应该从供应商文档或特定设备的硬件相关来源获取额外密钥列表。
  3. 欢迎任何纠正措施。