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

标签 android android-audiomanager

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() 并且没有枚举入口点。因此,无法请求支持的参数键的完整列表。

最重要的是:

  1. 我们有一小组预定义的通用参数
  2. 为了处理特定于供应商的参数 - 我们应该从供应商文档或特定设备的硬件相关来源获取额外 key 列表。

欢迎任何更正。

关于Android - 如何获取 AudioManager/AudioSystem 参数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29450879/

相关文章:

android - 一个 Activity 和另一个 Activity 之间的动画过渡

android - PreferenceFragmentCompat 需要设置 preferenceTheme

Android audiomanager - 我想设置静音模式,但应用了优先模式( Lollipop )

android - 如何从 Android 中的视频文件中分离音频流比特率?

android - 为什么 AudioManager.isStreamMuted 不可用?

java - 如何在默认 Android Studio 抽屉导航中的 Fragments 之间切换

Android 文本放置

android - 两个位置之间的距离不正确

android - 使用从上到下的滑动手势控制android中的音量

android - 如何解决 Android 上随音乐发生的自动触觉振动?