我正在开发运行Android 4.2.1的自定义主板。除了正确的音频路由之外,我几乎所有的东西都在工作。
我有一个音频编解码器(WM8960连接在I2S总线上),它可以很好地维护扬声器,内置麦克风,耳机和耳机麦克风。 HAL通过audio_hw.c
中的tinyAlsa像往常一样实现,并且在整个系统中完美运行。
还连接了GSM调制解调器音频的第二个音频设备(实际上是USB声卡)。它可以被ALSA检测到没有问题,我可以使用aplay / arecord在内核级别上使用它。
现在我需要在建立音频呼叫时设置正确的路由 - 这意味着我必须将声音从麦克风播放到第二个音频设备,反之亦然。有人可以请给我一个建议或示例如何使用tinyAlsa API处理这个问题吗?
问候 扬
答案 0 :(得分:0)
我认为您可以在Audio HAL中解决此问题。
假设您要使用的第二个音频设备是第二个音频卡
检测到呼叫用例后,将播放声卡更改为第二个声卡。
即 卡0-WM8960; 卡1-USB声卡
在pcm_open API中更改卡号
pcm_open(0,..)更改为 pcm_open(1,..)
您可能还需要在调用pcm_open之前设置相应的混音器命令。