我正在更新我的嵌入式设备中的Bluez 4.97到5.35。
对于A2DP连接,我们必须共享SBC编解码能力。在理想情况下,性能如图1所示

。在Bluez 4.97代码中,我从AVDTP层的sbc_getcap_ind()函数中获得了SBC编解码能力。在sbc_getcap_ind()中,初始化sbc_codec_cap和sbc_codec_cap。所以这个功能包我可以发回电话。
在5.35中,sbc_getcap_ind()函数不可用。avdtp_media_codec_capability是在AVDTP层的endpoint_getcap_ind()函数中设置的,这是我所期望的。但是sbc_codec_cap没有初始化。所以我得到了像figure2那样的包

。
在blueZ 5.35中出现了新包android/hal-音频-sbc.c,在此包中设置了SBC编码功能。
我的嵌入式设备是基于RTOS的,我与android无关。所以我有以下疑问:
1)为什么在blueZ堆栈中有新的blueZ包?这背后的发展理念是什么?
android/hal-audio-sbc.c,中初始化SBC功能的原因是,非android设备将如何访问SBC功能?
如何在我的嵌入式环境中使用android/hal-audio-sbc.c来获得功能?
我认为我无法解决这个问题,因为我缺少对新的5.35架构的理解。而且没有足够的文档来理解BlueZ体系结构。我希望通过得到这些问题的答案,我能够理解5.35 BlueZ包中安卓文件夹的意义。
发布于 2017-04-10 03:57:22
在回答您的问题之前,我想分享几个URL的。
来问你的问题,
doc/profile-api.txt ==> RegisterProfile() method)注册。BlueZ将只充当应用程序和设备之间的中介。就Linux而言,BlueZ内部没有音频实现。我不确定BlueZ下的Android目录。因此,非android平台需要自己实现。还有另一种开源解决方案,蓝帘,目前正在积极开发中。在使用它之后,我可以看到很多的声音延迟和质量下降。如果你想要完美的解决方案,自己实现或使用脉冲音频(没有那么多的实时)。
简单地说,将应用程序从BlueZ 4.x迁移到BlueZ 5.x并不容易!
https://stackoverflow.com/questions/43279855
复制相似问题