AudioManager
有一个 setParameters以字符串表示形式接受键值对的方法 ("parameter_name=parameter_value")。
在内部,它调用原生 AudioSystem.setParameters
。
获取参数值的唯一方法是,如果您知道其名称,则通过调用 AudioManager.getParameters
方法,该方法调用 `AudioSystem' 中相应的本地方法。
有没有办法(使用反射或其他技术)获取支持的参数列表(当然,结果将取决于调用它的设备,因为它是特定于平台的)?
最佳答案
经过简短调查,我猜想没有可靠的方法来枚举音频设备参数的所有可用键。 Android header 定义了一小组通用参数,可能所有设备都应支持这些参数。您可以找到实际的 key here (查找 AUDIO_PARAMETER_*
宏)。和interface到实际设备实现 struct audio_hw_device
(由供应商实现)只有 get_parameters()/set_parameters()
并且没有枚举入口点。因此,无法请求支持的参数键的完整列表。
最重要的是:
- 我们有一小组预定义的通用参数
- 为了处理特定于供应商的参数 - 我们应该从供应商文档或特定设备的硬件相关来源获取额外 key 列表。
欢迎任何更正。
关于Android - 如何获取 AudioManager/AudioSystem 参数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29450879/