问题标签 [a2dp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
84 浏览

bluetooth - Bluedroid AV 连接失败(BTAV_CONNECTION_STATE_DISCONNECTED 状态)

我正在使用 Bluedroid 堆栈来开发我的蓝牙应用程序。

我正在使用 A2DP src 配置文件在 Mobile 和我的设备之间建立连接。

我在以下情况下遇到问题:

当我从 A2DP SINK 配置文件切换到 A2DP 源配置文件时,来自移动站点的第一个连接请求总是失败。在第一次连接请求之后,它总是成功的。

我发现失败的原因是:

AV 连接状态正在从 BTAV_CONNECTION_STATE_CONNECTING ... ... BTAV_CONNECTION_STATE_DISCONNECTED 更改

我检查了 Bluedrod Stack 中的流程,发现流式打开失败,因此我的应用程序收到了 BTAV_CONNECTION_STATE_DISCONNECTED 事件。

任何帮助,将不胜感激。欲了解更多信息,请发表评论。

bluedroid 堆栈中的失败状态为 BTA_AV_FAIL_STREAM

0 投票
1 回答
1067 浏览

android - 为什么 Bluez 5.35 SBC 编解码器功能在 android/hal-audio-sbc.c 包中初始化,而不是在 AVDTP.c 中

我正在我的嵌入式设备中将 Bluez 4.97 更新到 5.35。

对于 A2DP 连接,我们必须共享 SBC 编解码器功能。在理想情况下,功能将如图 1 所示带有 bluez 4.97 的 AVDTP 数据包。在 Bluez 4.97 代码中,我从AVDTP 层中的sbc_getcap_ind()函数获得 SBC 编解码器功能。在 sbc_getcap_ind() 中,sbc_codec_capavdtp_media_codec_capability都被初始化。所以这个功能包我可以发送回电话。

5.35中,sbc_getcap_ind()函数不可用。avdtp_media_codec_capability在 AVDTP 层的endpoint_getcap_ind()函数中设置,这符合我的预期。但是sbc_codec_cap没有初始化。所以我得到了图 2 中的 packect 带有 bluez 5.35 的 AVDTP 损坏数据包

blueZ 5.35中出现了新的包 android/hal-audio-sbc.c,在这个包中设置了 SBC 编码功能。

我的嵌入式设备是基于 RTOS 的,我与 android 无关。所以我有以下疑问:

1)为什么 blueZ 堆栈中有新的 android 包?这背后的发展理念是什么?

2)为什么 SBC 能力在android/hal-audio-sbc.c中初始化,非安卓设备如何访问 SBC 能力?

3)如何在我的嵌入式环境中使用android/hal-audio-sbc.c来获得 SBC 功能?

我想我无法解决这个问题,因为我缺少对新 5.35 架构的理解。并且没有足够的文档来理解 BlueZ 架构。我希望通过回答这些问题,我可以理解 5.35 BlueZ 包中 android 文件夹的重要性。

0 投票
0 回答
245 浏览

android - Android 蓝牙 a2dp 和 spp 可以同时使用吗?又名音频和数据在同一时间

您好,我使用的是 bk8000l 芯片,它按照规格同时支持 spp 和 a2dp。我需要找到/构建一个应用程序,它可以发送一些 spp 命令以及来自手机麦克风的语音。是一个ptt(一键通)。数据必须由串行端口上的 pic cpu 接收,才能在收发器端开始/停止传输,按下/释放手机上的按钮。音频显然是我认为需要的。请给我一些想法谢谢。

0 投票
2 回答
1596 浏览

android - 如何以编程方式在 Android 中启用或禁用蓝牙配置文件?

我有一个要求,我有一个通过蓝牙连接到手机的配对设备列表。在某些时候,我必须禁用/启用将媒体或联系人详细信息共享到我的配对设备。我的要求是在 android 中以编程方式执行此操作。我已经搜索过这个,但我找不到任何解决方案。

请让我知道是否可能?

0 投票
1 回答
617 浏览

android - 查找播放或使用蓝牙音乐流的应用包名

如何知道哪个应用正在播放/使用音乐流。当音频在蓝牙设备上播放或暂停/停止时,我可以通过广播接收器BluetoothA2dp接收回调,广播名称如下:

例如。当我通过 YouTube 或视频播放器在蓝牙设备上播放音乐时,我收到了回调 BluetoothA2dp.STATE_PLAYING -BluetoothA2dp.ACTION_PLAYING_STATE_CHANGED 但我无法获取 YouTube 或视频播放器应用程序包名称。

当蓝牙设备上有来电或去电时,我通过广播接收器BluetoothHeadset收到回调,并且广播接收器的名称如下所示:

有什么方法可以知道在蓝牙设备上播放音乐的包的名称,或者如何通过接收器的意图或上下文获取调用广播接收器的包。

0 投票
0 回答
427 浏览

bluez - bluez4.101:耳机连接后立即断开连接

我试图让我的电脑(ubuntu14.04)作为蓝牙耳机工作,但每次手机连接电脑后,它都会在几秒钟内断开连接。这里是hciconfig和hcidump,bluez版本是4.101。我是否想念一些东西来保持联系?

0 投票
1 回答
3524 浏览

python - 如何打开蓝牙连接并成为 A2DP 源和接收器

我想使用 Python 连接到蓝牙设备并将其用作扬声器。例如,使用 Python 播放 .wav 并在设备上收听并验证它正在播放等。我不想在我的 linux 机器上播放音频并在蓝牙设备上收听它。

我正在查看stackoverflow,似乎我可以使用pybluez进行连接,但随后需要使用dbus来设置实际的音频连接。我找到了Linux BlueZ dbus 通信 a2dp,但它导致:

当它试图从界面中获取默认适配器时,我什至没有解决原始海报问题。感谢您的任何帮助!这是代码:

我有两个问题。

  1. 如何成为 A2DP 源?
  2. 如何修复获取适配器路径时抛出的异常?
0 投票
0 回答
292 浏览

android - 使用 Raspberry Pi 作为蓝牙“耳机”

我是否可以通过蓝牙将 Pi 连接到手机并将 Pi 用作麦克风输入和音频输出?提前致谢

0 投票
1 回答
1487 浏览

android - 如何断开 A2DP 配置文件蓝牙连接?

我正在与耳机和其他蓝牙设备进行 A2DP 连接,但是当我连接蓝牙设备但当我断开连接但它没有断开连接时。我的代码是:

0 投票
0 回答
306 浏览

ios - 当BT设备只有一个扬声器时,如何使用PlayAndRecord在AVAudioSession中保持蓝牙设备的输出?

我创建了一个带有AVAudioSessionCategoryPlayAndRecordAVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryAllowBluetooth作为选项的 AVAudioSession。只要连接了带有扬声器和麦克风的设备,一切都很好。声音从外部扬声器发出,输入通过外部麦克风录制。但是当我连接蓝牙扬声器(即 Bose SoundLink)时,输出会切换到 iPhone 扬声器。

对我来说奇怪的是,蓝牙扬声器列在[[AVSession sharedInstance] availableInputs]

使用AVAudioSessionCategoryAllowBluetoothA2DP不是一个选项,因为它总是使用 iPhone-BuiltIn-Microphone。

我发现 Bose SoundLink 报告了一个麦克风输入,虽然它没有内置麦克风,但它提供了连接外部麦克风的可能性。因此,它不是一个完美的测试设备。

无论如何,我的问题仍然是找出新连接的设备是仅扬声器还是具有内置麦克风。