3

我正在开发运行 Android 4.2.1 的定制板。除了正确的音频路由外,我几乎所有的东西都在工作。

我在那里有一个音频编解码器(WM8960 连接在 I2S 总线中),它可以很好地服务于扬声器、内置麦克风、耳机和耳机麦克风。HAL 像往常一样通过 tinyAlsa 实现,audio_hw.c并在整个系统中完美运行。

还有第二个音频设备(实际上是一个 USB 声卡)连接了 GSM 调制解调器音频。ALSA 检测到它没有问题,我可以使用 aplay/arecord 在内核级别使用它。

现在我需要在建立音频呼叫时设置正确的路由——这意味着我必须将声音从麦克风播放到第二个音频设备,反之亦然。请有人给我一个建议或示例如何使用 tinyAlsa API 处理这个问题?

问候简

4

1 回答 1

1

我认为你可以在 Audio HAL 中解决这个问题。

假设您指的第二个音频设备是第二个声卡

当检测到呼叫用例时,将播放声卡更改为第二个声卡。

即如果 Card0 - WM8960;Card1 - USB 声卡

在 pcm_open API 中更改卡号

pcm_open(0, ..) 更改为 pcm_open(1, ..)

您可能还需要在调用 pcm_open 之前设置相应的混音器命令。

于 2019-01-13T08:12:12.320 回答