android android-audiomanager

Android-Cómo obtener una lista de parámetros de AudioManager/AudioSystem



android-audiomanager (1)

AudioManager tiene un método setParameters que acepta un par de clave-valor en la representación de cadena ("nombre_parámetro = valor_parámetro").
Internamente, llama nativo AudioSystem.setParameters .
La única forma de obtener un valor de parámetro es si conoce su nombre, llamando al método AudioManager.getParameters que llama al método nativo correspondiente en `AudioSystem ''.

¿Hay alguna forma (utilizando la reflexión u otras técnicas) para obtener una lista de los parámetros admitidos (por supuesto, el resultado dependerá del dispositivo al que se llame ya que es específico de la plataforma)?


Después de una breve investigación, puedo suponer que no hay una forma confiable de enumerar todas las claves disponibles para los parámetros del dispositivo de audio. Los encabezados de Android definen un pequeño conjunto de parámetros generales, que probablemente deberían ser compatibles con todos los dispositivos. Puede encontrar las claves reales here (busque AUDIO_PARAMETER_* macros). Y la interface para la struct audio_hw_device implementación del dispositivo real struct audio_hw_device (que implementa el proveedor) solo tiene get_parameters()/set_parameters() y no tiene puntos de entrada de enumeración. Por lo tanto, no hay manera de solicitar una lista completa de las claves de parámetros compatibles.

Para acabar:

  1. Tenemos un pequeño conjunto de parámetros predefinidos y comunes.
  2. para hacer frente a los parámetros específicos del proveedor: debemos obtener una lista de claves adicionales de los documentos del proveedor o las fuentes relacionadas con el hardware para un dispositivo en particular.

Todos los correctivos son bienvenidos.