2015-04-04 27 views
16

AudioManager有一個setParameters方法,它在字符串表示形式(「parameter_name = parameter_value」)中接受鍵值對。
它在內部調用本地AudioSystem.setParameters
獲取參數值的唯一方法是,如果您知道其名稱,則調用AudioManager.getParameters方法,該方法在`AudioSystem'中調用相應的本機方法。Android - 如何獲取AudioManager/AudioSystem參數列表

有沒有一種方法(使用反射或其他技術)獲取支持的參數列表(當然,結果將取決於它所調用的設備,因爲它是平臺特定的)?

回答

6

經過簡短的調查後,我可以猜測沒有可靠的方法來枚舉音頻設備參數的所有可用鍵。 Android頭文件定義了一些通用參數,可能應該被所有設備支持。您可以找到實際的密鑰here(查找AUDIO_PARAMETER_*宏)。並且interface到實際設備實施struct audio_hw_device(由供應商實施)僅具有get_parameters()/set_parameters()並且沒有枚舉入口點。因此,無法請求支持的參數鍵的完整列表。

最糟糕的是:

  1. 我們小的一組預定義的,常見的參數
  2. 應付供應商特定的參數 - 我們應該取得供應商的文檔或與硬件相關的源附加鍵列表特定設備。

歡迎任何糾正措施。