繁体   English   中英

BlueZ vs Bluedroid蓝牙堆栈

[英]BlueZ vs Bluedroid bluetooth stack

BlueZ有很多文档和所有文档。 同样,我了解BlueZ支持A2DP接收器支持。 同时,通过修改同一个内部的audio.conf文件,可以使android设备充当A2DP接收器。

我也知道从android 4.2开始,BlueZ堆栈被Broadcom的Bluedroid堆栈取代。 我搜索了很多关于Bluedroid堆栈的信息。 但我无法找到相同的细节。

希望有人可以帮我解决以下疑问。

1)。 Bluedroid是否支持A2DP接收器?

2)。 audio.conf文件是否可用于具有bluedroid堆栈的设备?

3)。 我将通过直接调用BlueZ堆栈的API来为Android设备编写A2DP接收器支持。 但我最后的问题是Bluedroid堆栈是否也可以使用相同的? 希望Bluedroid只是BlueZ的扩展。

请帮忙。

Bluedroid是Broadcom提供的一个堆栈,现在是android中的opensource。 Bluedroid在任何方面都与bluez无关,它与bluez相比几乎没有优势(我与此不同)。

[1]。 截至目前,Bluedroid没有a2dp接收器支持,根据代码可用源代码,只有a2dp源支持可用

[2]。 Audio.conf文件用于bluez堆栈,它不是bluedroid的一部分

[3]。 直接调用Bluez API--我认为你会使用dbus调用但是bluedroid不支持dbus方法调用,它有一个实现的回调机制,所以它不起作用,bluedroid不是bluez的扩展。

Android Lollipop(5.0)现在支持A2DP Sink角色。 他们修改了Bluedroid源代码以支持相同的功能。 要完全支持它,您需要修改音频HAL(audio.h),AudioPolicyManagerBase.cpp和audio_policy.conf以及音频管理器,A2DPStateMachine等。

正如user987500所说,android L支持A2DP接收器,只做了一些小修改,你的设备可以从A2DP src改为sink。 但请确保一个设备只能支持一个角色,可以从xml文件配置。

除了上面的答案,自从Android L,引入了支持,但仍然没有完成代码的音频流部分。 但是,我找到了这个更改列表,其中完成了a2dp接收器实现,并且可以通过接收器设备播放媒体,如更改列表的提交消息中所述:

蓝牙A2DP接收器

此更改实现了A2DP接收器功能。 如果Android设备是接收器角色,它可以通过BT从手机接收音乐。 此功能适用于多媒体车载套件,机顶盒和家庭HiFi。 在BoardConfig.mk中设置BLUETOOTH_A2DP_SINK:= true以在bluedroid中启用A2DP Sink特征。

您还需要在框架中进行以下更改,以便将音乐路由到扬声器。 https://android-review.googlesource.com/#/c/97832/ https://android-review.googlesource.com/#/c/97853/ https://android-review.googlesource.com/#/ c / 97833 / https://android-review.googlesource.com/#/c/98130/ https://android-review.googlesource.com/#/c/98131/

此更改不包括SBC解码器。 你可以从github.com/tieto/sbc-decoder获得一个SBC解码器。

祝一切顺利!!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM