gpt4 book ai didi

android - 需要关于在安卓/非安卓设备之间通过 A2DP 发送/接收音频的想法

转载 作者:太空宇宙 更新时间:2023-11-03 13:20:50 27 4
gpt4 key购买 nike

我需要能够通过蓝牙发送和接收音频,似乎 A2DP 就是这样做的

使用给定的代码 here ,我设法让我的手机检测并与远程蓝牙设备配对,然后建立 A2DP 连接,通过蓝牙将 android 设备的所有音频输出发送到远程设备

我以前能够通过 RFCOMM 与同一个远程蓝牙设备进行这种两种方式的数据通信(尽管 android 手机需要是启动通信的设备,但我无法通过远程设备进行通信,尽管我知道它是可能的)。一旦建立了 RFCOMM 链接,android 设备就可以向远程设备发送数据,也可以从远程设备接收数据

我现在需要的是类似的东西,但用于音频(最好使用 A2DP,但我愿意使用其他任何东西,只要它能完成工作)。在四处窥探时,我得到提示,无法通过 A2DP 在手机上接收音频数据(至少是一个无根的普通数据,对我来说不是一个选项)(例如,参见 here) .但我也见过允许完全通过蓝牙调用电话的耳机(好吧,实际上是无线的,我假设它必须是蓝牙)。例如,来电时,只需按下蓝牙耳机上的一个按钮,即可通话和听对方讲话。如果手机不能用作音频接收器,那么此类耳机是如何做到的呢?

我需要一些关于我应该如何编写一个 android 应用程序以通过蓝牙发送和接收音频数据的想法(为简单起见,我们将其视为类似于 Bluechat sample program ,但涉及音频而不是文本)。有可能吗(通过java)?只能通过NDK吗?市面上的设备是怎么做到的?它与 A2DP 的配置文件不同吗?

PS:我的测试设备是带有 Gingerbread 的 Samsung Galaxy 2(手机)和带有 KitKat 的 Asus Nexus 7(平板电脑)。顺便说一下,远程蓝牙设备(它是一个开发板)带有一个示例项目,可以将开发板变成 A2DP 音频源。如果我在开发板上运行这个示例项目,使用手机和平板电脑的内置蓝牙设置,我可以与远程开发板配对,但安卓设备收不到任何音频。

最佳答案

有两种不同的 A2DP 配置文件,A2DP sourceA2DP sink。 Android 支持 A2DP source 配置文件,因此您可以将音乐从您的设备流式传输到接收器(如蓝牙扬声器)。据我所知,A2DP sink 配置文件未启用,这就是为什么您无法将音乐流式传输到手机并让它充当扬声器的原因。我只是在一段时间前用谷歌搜索才知道这一点,所以事情可能已经改变了。

可以通过编辑 /etc/bluetooth/audio.conf 并重启手机来启用 A2DP sink 配置文件。不幸的是,这具有禁用 A2DP source 配置文件的副作用,因此不能在广泛分布的应用程序中使用。另一个缺点是没有太多的 java 软件堆栈可用于处理该配置文件,因此您必须做很多工作才能使事情顺利进行。

回答您关于为什么耳机能够连接到 Android 的问题,那是因为耳机使用不同的配置文件,称为 Headset profile (HSP),通常由耳机使用,或 Handsfree profile (HFP) 常用于汽车。两种配置文件都有两个方面:客户端和网关端(手机)。这两个配置文件的音频质量被认为是语音质量。 8 或 16kHz 采样率和糟糕的编解码器。还有很多用于接听/调用电话等的协议(protocol)...我不确定您是否可以在没有主动连接到电话网络的情况下传输音频。

关于android - 需要关于在安卓/非安卓设备之间通过 A2DP 发送/接收音频的想法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27934221/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com