【问题标题】:Android USB audio as primary audioAndroid USB 音频作为主要音频
【发布时间】: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


    【解决方案1】:

    对于它的价值,这就是我最终解决这个问题的方式。压倒性地没有做好生产准备,但它完成了工作:我修改了 WCD9340 内核驱动程序代码中的 Slimbus 读写调用,使它们基本上变成了存根。在 WCD9340 的存根初始化之后,USB 音频编解码器接管并正常执行音频 I/O。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-24
      • 2015-02-01
      • 1970-01-01
      • 2017-12-17
      • 1970-01-01
      • 2013-08-12
      相关资源
      最近更新 更多