0

我正在尝试在 cyanogenmod 源代码中找到一个位置,其中在通话期间从免提接收到的声音在将其定向到电话线之前被解码。我需要帮助。

据我了解,在HFP中使用SCO传输来承载语音数据,而SCO本身使用HCI。所以我尝试在内核中的net/bluetooth_mgmt/hci_core.c 中挂钩hci_recv_frame 函数,但似乎在调用期间没有使用它。

还感谢指向 bluedroid 架构概述的链接。

更新

我明白了,bluedroid 在内核中没有任何部分。这就是为什么我的修改不起作用。

但是我仍然需要在源代码中找到一个位置(在用户空间库中?),在从 Bt 接收之后但在发送到电话线之前可以截取声音数据。

4

1 回答 1

0

据我所知,在许多蓝牙控制器芯片中,SCO 链接数据不通过 HCI 接口传输。这些芯片大部分都有一个专用的音频接口(如PCM/I2S等),SCO数据将通过该接口发送到主机。主机然后接收 SCO 音频数据并在其音频子系统中处理它们。您可以参考 Android 音频系统相关的源文件,如音频管理器/音频策略/音频 HAL。

于 2017-02-18T08:14:58.070 回答