音频路由到蓝牙免提设备
我有以下设置的系统: Bluetooth connected to GSM module using the PCM lines and GSM module connected to the AC97 codec using analog lines http://www.freeimagehosting.net/uploads/4a0c9bc0b2.png
我用:音频路由到蓝牙免提设备
- 的Windows CE 6.0 R3
- 微软蓝牙堆栈,包括所有配置文件
- Motorola H500
- 音频网关服务启动并运行(通过
services list
在cmd
中检查) - GSM模块功能正常 - 我可以设置拨出电话和接听电话。
- 蓝牙是功能 - A2DP规范播放音乐摩托罗拉耳机(不记得模型现在)
我想使用耳机设备保持一个对话。我已将所有蓝牙组件包含在目录中。
我使用我写的应用程序与设备配对。连接完成后,我将设备地址和耳机配置文件的GUID存储在[HKEY_LOCAL_MACHINE\Software\Microsoft\Bluetooth\AudioGateway\Device\1]
中,以便AG
能够知道它已连接设备。
我也将[HKEY_LOCAL_MACHINE\Software\Microsoft\Bluetooth\AudioGateway\MapAudioToPcmMode]
设置为0
,因此BTD.dll
将知道不承担SCO连接的所有权。
在我的BT芯片(Wi2Wi)中,它说PCM与SCO连接一起工作,但不是常规的HCI堆栈。因此,我现在试图看看如何通过PCM接口告诉BT芯片为特定SCO连接路由音频。
所以我的问题如下:
- 我靠在相信我不需要BTScoSnd和AudioGateway驱动程序,但我不知道。有人能证实这一点吗?
- 如何在Windows CE下发送BT控制器特定命令的固件?
终于解决了......
别的不说我做错了,我设置的蜂窝模块与错误的PCM接口(它在这些2)工作。所以现在我有一个耳机连接可以工作(嘈杂,但工作)。
最后,我有AG运行和BTScoSnd驱动程序运行。我与耳机配对,BTScoSnd驱动程序创建与设备的SCO链接。然后给蜂窝模块命令,将所有音频转移到正确的 PCM接口上,然后在耳机中同时接入音频输入和音频输出。所有链路处理都由BT控制器(基于BluetoothCore4 CSR的芯片)完成,该控制器默认配置为将SCO连接路由到PCM接口,而不通过HCI层。
AG根据耳机和Hands-free profile specifications需要。
我还需要将固件设置为正确的配置。为此,我使用了Linux的BCCMD
工具。使用Windows CE驱动程序通过HCI执行此操作需要很长时间才能实现。