我正在创建新的应用程序,我将通过它发送音频数据,但我希望使用一些特定的混音器控件来传输数据。
所以我想添加新的设备常量,比如 AUDIO_DEVICE_OUT_SPEAKER (AUDIO_DEVICE_OUT_NEW) 并使这个设备常量被选中。
(在上面创建新常量是为了将其与其他应用程序区分开来)
所以我将在 HAL 中使用这个变量并选择创建的新用例。
对于以上内容,我需要找出谁选择了 AUDIO_DEVICE_OUT_SPEAKER(或类似常量),并根据选择该常量的条件,以便我可以为我新创建的常量(AUDIO_DEVICE_OUT_NEW)复制相同的内容。
我在谷歌搜索,但可用的信息非常少。任何建议/帮助将不胜感激。
我正在使用 kitkat 源代码。
问问题
1361 次
1 回答
0
不同平台的音频 HAL 可能会有所不同,在某些情况下,对于不同的 OEM(我曾经在索尼从事音频 HAL 和框架的工作,我们进行了一些自定义以使路由与早期产品保持一致,并添加索尼自己的音频效果等)。
无论如何,音频 HAL 通常包含一个策略管理器,它根据当前用例(语音通话、音乐播放、通知播放)、您附加的附件等做出高级路由决策。在所有实现中在我合作过的音频策略管理器中,有一种getDeviceForStrategy
方法可以执行此选择。这是该方法的一种实现,您可能会在某些基于 Qualcomm 的设备上找到它(可能带有一些自定义)。
请注意,简单地添加一个新AUDIO_DEVICE_OUT_
常量并在策略管理器中的某些条件下选择它对您没有任何好处。您还必须在 HAL 中进行其他更改,以将您的新设备映射到一组参数,从而在硬件级别启用适当的声音路径。有关更多信息,请参阅我之前关于创建备用声音路径的答案。
于 2015-07-29T11:34:01.603 回答