【发布时间】:2020-12-15 07:16:45
【问题描述】:
我正在构建基于 Qualcomm sdm845 SoC 的 Android 设备。对于音频,我使用简单的 USB 音频编解码器。然而,在 sdm845 SOM 模块随附的开发套件中,他们使用了 Qualcomm WCD9340 编解码器。我的 USB 音频编解码器实际上是一个 Teensy 3.2(NXP Kinetis Cortex-M4)分线器,连接了 I2S DAC 和 I2S 麦克风。当我将此设备连接到开发套件的 USB 端口(运行自定义 Android 9 BSP)时,我通过 USB 获得音频 I/O。所以 HAL 支持就在那里。
然而,在我的定制 PCB 上带有相同的 sdm845 SOM,USB 音频设备不会输出任何声音。在 Linux 内核级别上,在 adb shell 上使用 tinyplay 和 tinycap 可以正常工作。所以硬件和内核都不错,问题可能出在Android HAL上,那可能还在期待WCD9340。
我正在寻找在 Android HAL 中某个位置完成 Android 和 Linux 设备之间的实际映射,或另一种强制 USB 声卡成为主要输出设备的方法。
设备配置中有一个“TARGET_USES_AOSP_FOR_AUDIO”选项,有效地删除了所有高通特定的音频实现,但这也没有给我任何结果。奇怪,因为我已经成功地使用了相同的 USB 音频编解码器和在 Hikey960 上构建的香草 AOSP。
有人有这方面的经验吗?
【问题讨论】:
标签: android audio usb hardware