在安卓系统中,是否有办法使用 "MODE_IN_COMMUNICATION "将音频路由到A2DP?
如果我将录音机模式设置为sode_in_communication,并将媒体播放器流设置为stream_voice_call,则可以将音频路由到扬声器或内部手机扬声器,或者很好.如果将其路由到内部扬声器,并且插入有线耳机的int,它会自动路由到它.但是,我无法找到一种将音频路由到A2DP耳机的方法(没有将音频模式更改为mode_normal,或将流到stream_music).我的问题是,使用mode_normal和stream_voice_call会在某些设备上引起问题,而使用stream_music是一个问题,如果背景中已经有音乐,那么我的应用程序与该背景音乐"混合". 所以,我希望有一种方法可以使用Mode_in_communication和stream_voice_call组合将音频迫使A2DP耳机.这可能吗? 解决方案 也许它可以在某些设备上工作,但是如果您关心大多数设备的兼容性,那么答案是"否". 电话状态为MODE_IN_CALL或MODE_IN_COM
2 2024-04-01
编程技术问答社区
Linux BlueZ dbus通信a2dp
作为一个快速摘要,我目前正在构建一个Raspberry Pi,能够充当蓝牙A2DP接收器并将该音频连接到3.5mm连接. 我运行的Python脚本之一使用Bluez和dbus与蓝牙设备进行通信,目前我正在使用的脚本查找以前与系统配对的BT设备,并且自动连接到它(脚本在CRON上运行),,然后,我可以在iPhone上播放播放音频流.但是,我要做的就是找到设备并连接以发送DBUS命令以启动音频播放,而不必在手机上手动按播放本身. 这是代码的提取物,以及我为使其起作用的方法,但没有运气. bus = dbus.SystemBus() #Get bluez dbus objects man = bus.get_object('org.bluez', '/') iface = dbus.Interface(man, 'org.bluez.Manager') adap
0 2024-04-01
编程技术问答社区
能否在Swift中向A2DP蓝牙设备发送十六进制数据?
我正在开发iOS上的应用程序,该应用程序连接到蓝牙A2DP设备,但我无法在十六进制中发送指令以使其正常工作.有人可以帮我吗?我找不到信息. 使用avaudiosession.sharedinstance().currentRoute我可以看到设备的uid和名称,但没有发送数据. let route = AVAudioSession.sharedInstance().currentRoute let outPort = route.outputs.first if let outPort = outPort { print("out port name:\(outPort.portName)") } 你能帮我吗? 谢谢! 解决方案 您应该检查MFI和外部Accessory Framework,以使您的设备与iOS A2DP通信. 从iOS应用程序方面,这是很高的观点.您只关心使用AvaudioEngine,AudiOun
0 2024-04-01
编程技术问答社区
Bluez 5-从Bluez启动与iPhone的avrcp连接
Bluez 5.28 目标 - 控制iOS轨道跳过,并以编程方式从Bluez启动连接.不需要A2DP. 如果我启动从iPhone/iPad启动连接(转到BT设置,单击PI设备),一切正常,我想避免使用,而不必使用手机. (使用PI的汽车设置).我有控制,跟踪元数据等 在蓝牙中做一个connect xx:xx:xx:xx:xx:xx产量: a2dp-source profile connect failed for 6C:70:9F:7E:EF:A8: Protocol not available 好的.它需要脉冲 +模块.我安装了它,现在可以从Bluez连接. 但是,它现在添加并自动选择Bluez作为音频输出设备.不想要那个,必须再次摆弄手机.只需要控制.尽管我完全不喜欢它,因为我可以从操作系统中的任何地方更改输出设备,而不必转到设置. 好吧,让我一起禁用A2DP并查看. /usr/libexec/bluetooth/bluetoothd -d
0 2024-04-01
编程技术问答社区
将音频发送到支持蓝牙的扬声器,IOS
我想在我的应用程序中添加一个函数,用户可以选择在启用蓝牙扬声器上播放音频.我的汽车上有一个parrot easydrive,这适用于PhoneCalls,例如Dictafoon应用程序. 我知道我应该使用核心音频框架.连接蓝牙设备时,据说很容易将音频流式传输到该连接.我现在正在寻找核心音频示例代码(或一本书),其中解释了带有核心音频的蓝牙设备的连接和流式传输. 任何人都可以阐明这一点吗?如果我可以使用另一个框架或示例代码,请提及! 非常感谢! 解决方案 您不编写任何特定的核心音频代码,它与通过airplay播放音频的过程相同. 基本上,您可以放置​​ mpvolumeview ,基础框架将为您重定向您的音频输出.实施此功能后,您将能够使用应用程序使用蓝牙和任何启用AirPlay的设备.
2 2024-04-01
编程技术问答社区
我如何在iOS中检测是否连接了HFP或A2DP?
我正在从事一个可以通过HFP设备播放音乐的项目.但是,这是我要检测到音乐时HFP还是A2DP是否连接的问题. 现在,我正在使用Avoundation框架来执行此操作.这是代码: - (BOOL)isConnectedToBluetoothPeripheral { BOOL isMatch = NO; NSString* categoryString = [AVAudioSession sharedInstance].category; AVAudioSessionCategoryOptions categoryOptions = [AVAudioSession sharedInstance].categoryOptions; if ((![categoryString isEqualToString:AVAudioSessionCategoryPlayAndRecord] && ![categoryString isEqual
0 2024-04-01
编程技术问答社区
AVAudioSessionPortBluetoothHFP、A2DP和LE之间有什么区别?
Apple的 avaudiosessionportdescription 参考.但是苹果对这三种类型的解释不多.有人可以帮助解释更多吗? 解决方案 avaudiosessionportbluetoothhfp |输入和输出 通过免提轮廓(例如汽车或耳机)连接到蓝牙设备时使用这.可以通过将音频会话类别设置为AVAudioSessionCategoryPlayAndRecord和类别选项AVAudioSessionCategoryOptionAllowbluetooth来访问它. avaudiosessionportbluetootha2dp |仅输出 这主要用于使用A2DP(高级音频分发配置文件)流音频.小型便携式蓝牙扬声器(如jambox)使用此配置文件进行流音频.可以通过将音频会话类别设置为AVAudioSessionCategoryPlayback. 来访问它 avaudiosessionportbluetoothle |仅输出 从iOS 7开始的
4 2024-04-01
编程技术问答社区
切换A2DP设备(安卓)
我有两个配对的蓝牙设备(我的汽车主机用于电话音频和一个单独的A2DP蓝牙接收器).在我的手机上,有一个复选框,用于"用于媒体音频",我必须手动为A2DP输出切换到我的汽车扬声器.我的目标是以编程方式切换此. 我尝试使用defered setBluetootha2dpon和setBluetoothScoon使用AudioManager类,但似乎都没有任何效果.我能够获取蓝牙配对设备的列表,并获得了要切换的连接的处理,但我似乎无法完全正确.我还尝试获得默认的蓝牙适配器,然后使用getProfileproxy,但我觉得我在吠叫错误的树. 有人可以指向正确的方向吗?基本上,我要做的就是检查"用于媒体音频的使用"框. 解决方案 不久前,我尝试将蓝牙设备连接到Android手机也有类似的问题.尽管您的设备配置文件不同,但我认为解决方案是相同的. 首先,您需要在项目名为android.bluetooth的项目中创建一个软件包,然后将以下 ibluetootha2dp.aidl
0 2024-04-01
编程技术问答社区
如何在安卓系统中启用A2DP汇流排功能?
我正在开发一种自定义的嵌入式设备,该设备将 gingerbread 2.3.4 用作OS. 现在,该设备应该能够从其他 A2DP 启用的设备(例如iPhone或其他Android设备)播放音频流.我知道姜饼包括能够具有A2DP接收器功能的Bluez堆栈4.69.但是,我怀疑Android会暴露这些API. 您有什么想法我如何实现此功能?由于我没有开发通用的Android应用程序,因此将不胜感激的任何非标准方法.我认为即使在Android中,也可以通过DBUS接口直接访问Bluez堆栈. 解决方案 Bluez可以支持A2DP接收器. 但是Android Framework并没有启用此配置文件. 您可以使用硬码练习实现蓝牙设备路径
4 2024-04-01
编程技术问答社区
安卓设备之间的蓝牙音频流
我对同一主题进行了研究,发现Android设备是A2DP源,并且音频只能从A2DP源流到A2DP接收器. A2DP水槽可以是蓝牙耳机或蓝牙扬声器. 但我的问题是 android应用如何命名" 蓝牙音乐播放器" works ? 它允许从一个移动设备流到另一个手机.因此,在这种情况下,侦听移动设备必须充当水槽.这是怎么可能的? 他们是在使用其他配置文件而不是A2DP? 好的,这可能是他们使用的内容.因为该应用程序也需要安装在客户端. 但是,如何将声音从 蓝牙麦克风流式传输到Android设备 ? 请帮助. 解决方案 不知道有关上述蓝牙音乐播放器的详细信息,它似乎使用了简单的蓝牙数据连接,否则您无需在播放/发送设备上安装客户端. 要将音频从麦克风流式传输到另一个设备,您可以将其记录在发送设备上并将其发送到接收设备.您需要为此目的实现协议. 或 您可以实现替代A2DP接收器服务.这就是接收器的是:带有蓝牙协议堆栈的设备,并实现了A2DP接收器. 编
0 2024-04-01
编程技术问答社区
iOS: 使用蓝牙音频输出(kAudioSessionProperty_OverrideCategoryEnableBluetoothInput)音频会话
我对CoreAudio Audiosession框架有几个问题,与几个蓝牙任务有关,希望有人可以帮助我解决这些问题,或者至少可以确认我的最新发现. USECASE是一个导航应用程序,希望与支持HFP和A2DP的蓝牙无线电连接.我已经阅读了整个Audiosession编程指南,但我仍然存在一些开放的问题,尤其是通过蓝牙使用音频输出. 蓝牙HFP音频输出(KaudioSessionUtputroute_bluetoothhfp)仅在设置AudioSession KaudioSessionCategory_playandRecord的情况下才有可能,您正在覆盖以下属性:KaudioSession eScement property_overroperty_overridecategoryenablebluetbluetbluetblueToothinput.这是真的?如果没有,我可以如何将MediaPlayBack会话作为示例到KaudioSessionUtputroute_blueto
0 2024-04-01
编程技术问答社区
程序性地连接到配对的蓝牙扬声器并播放音频
在我们的应用中,我想连接到先前配对的A2DP蓝牙扬声器,并使用Android v4.2或更高版本直接播放音频. 我可以使用此代码成功创建一个A2DP配置文件对象来启动该过程: /* Manifest permissions */ // Get the default adapter BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); // Establish connection to the proxy. mBluetoothAdapter.getProfileProxy(this, mProfileListen
2 2024-04-01
编程技术问答社区
如何修改安卓的蓝牙堆栈以启用A2dp水槽
我正在使用使用蓝牙麦克风将音频记录到Android设备的音频记录器应用程序(Nexus 7-根Android 4.4.2).它目前是在HFP上实施的,一切正常. Bluegiga的WT32蓝牙模块 +麦克风输入,通过HFP的音频质量并不好,但目前还足够,蓝色gi齿麦克风是实现的. 但是,我现在尝试将蓝牙配置文件更改为A2DP,因为有两个麦克风输入(L/R)和WT32支持A2DP(源).经过大量研究,我发现库存Android不支持A2DP(接收器),并且可以修改Android的蓝牙堆栈以启用A2DP(接收器). 我不明白的是一个人如何访问和修改蓝牙堆栈.如果有答案的人能够分解实现这一目标的步骤,那将是很好的. 我尝试按照此问题的答案: 通过android in Android 接收音频,但是我似乎找不到适当的文件要修改.实际上,我什至不知道我是否正在查看正确的文件夹.我已经通过Android-Studio的DDMS-File Explorer浏览了设备文件. ps,
2 2024-04-01
编程技术问答社区
如何通过蓝牙从一台安卓设备向另一台安卓设备传输音频?
是否可以通过蓝牙进行音频?在我的研究中,我发现只有A2DP(Advanced Audio Distribution Profile)才有可能.每个Android设备都支持A2DP吗?如果没有,是否可以使用蓝牙在两个Android设备之间流式传输音频?请帮助我理解这一点. 我浏览了以下链接: 通过Android in Android in Android , 通过蓝牙接收音频 如何通过Bluetooth通过蓝牙从另一个设备流式传输音频? 解决方案 是否可以通过蓝牙进行音频? 下面的线程说明,在设备之间进行流式蓝牙流式音频的可能性,但是在Google官员宣布 我们已修复了N7上的A2DP流stutter问题.下一个版本应具有修复程序. 对此问题很抱歉. 修复了4.2.2 蓝牙质量在升级到4.2后,蓝牙质量在4.2升至4.2/a> 并且每个Android设备都支持A2DP? 支持兼容性在 Android Developers网站中添加了
2 2024-04-01
编程技术问答社区
通过A2DP/AVRCP发送轨道信息
我正在尝试通过A2DP/AVRCP发送跟踪信息.目前,音乐是完美流式传输的,但是在"接收器"(即汽车音频)上,"轨道信息屏幕"是空白的(使用流行播放器并非如此). 有什么想法吗? 解决方案 此代码对我有用: private static final String AVRCP_PLAYSTATE_CHANGED = "com.android.music.playstatechanged"; private static final String AVRCP_META_CHANGED = "com.android.music.metachanged"; private void bluetoothNotifyChange(String what) { Intent i = new Intent(what); i.putExtra("id", Long.valueOf(getAudioId())); i.putExtra("artist", getArt
6 2024-04-01
编程技术问答社区
安卓设备作为A2DP配置文件的接收器
基本上,我现在要做的是使用Android设备作为A2DP接收器,并且在建立配对时,Android播放从发射器接收到的声音.我担心,如果使用STP配置文件,可能会导致流媒体延迟.因此,我想使用A2DP,但是可以使用Android设备作为A2DP的接收器吗?以及如何做? 解决方案 由于Android L BlueDriod堆栈确实支持A2DP接收器,但默认情况下是禁用的. 启用它执行以下操作: /* Enable bluetooth av sink. */ #define BTA_AV_SINK_INCLUDED TRUE in 您还必须进行此更改: true in 现在您可以配对设备并开始流式传输.不幸的是,尽管您会收到数据包,但您不会听到任何声音.原因是A2DP接收器没有音频路线.在此补丁的提交消息
4 2024-04-01
编程技术问答社区
如何连接到蓝牙a2dp设备?
我正在尝试将运行Android 4.1的Android设备与具有A2DP的音频接收器配对.我可以从蓝牙设置屏幕上没有问题而做到这一点,但我正在努力在代码中进行. 基本上,我能够发现设备,但无法通过插座连接到它.也许我使用的是错误的uuid,或者我应该使用预定义的android.bluetooth.bluetootha2dp类.这是我在做的: UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); socket = device.createInsecureRfcommSocketToServiceRecord(uuid); socket.connect(); ,但我得到一个例外,指出它无法连接. java.io.IOException: Service discovery failed at android.bluetooth.BluetoothSocket$SdpHelper.doS
48 2024-02-05
编程技术问答社区
蓝牙A2DP + AVRCP 1.3+模块
我很难了解如何使用我的项目实现AVRCP.我已经搜索了很多搜查了许多数据表,但我似乎似乎遗漏了... 这是我想做的: 简单地说,只要蓝​​牙模块支持A2DP,我希望通过蓝牙与我的Android 4.3设备与我的Android 4.3设备连接到流播放音乐,这似乎非常直接).此外,我希望能够控制媒体播放器应用程序(Pandora等).现在,我知道avrcp 1.0只支持基本控制命令(暂停,播放,下一个,prev,ff,rw),我发现了许多在线的蓝牙模块,通过SPI总线在命令或命令中通过简单的UART在Command或命令中找到了许多蓝牙模块.但是,我还希望能够从Android设备(这是一个AVRCP 1.3+只有功能)获取元数据,例如曲目名称,相册名称,艺术家姓名,跟踪长度和经过时间. 现在,从我理解的是,获得元数据,我需要一个支持AVRCP 1.3或更高版本的蓝牙模块.我无法理解的是如何要求元数据!从我读取的,响应于轨道改变命令发送元数据,例如轨道名称,艺术家,ablum
3742 2022-07-19
编程技术问答社区
BlueZ与Bluedroid的蓝牙协议栈
bluez有很多文档和全部.而且来自同样的,我理解Bluez支持A2DP水槽支持.并且同时通过修改相同的音频文件,可以使Android设备充当A2DP接收器. 我还知道从Android 4.2开始,Bluez堆栈被Broadcom的Bluedroid堆栈所取代.我搜索了很多关于Bluedroid堆栈.但我无法找到相同的细节. 希望有人可以帮助我有以下疑虑. 1). Bluedroid是否具有A2DP水槽支持? 2).音频文件是否可用于Bluedroid堆栈的设备? 3).我将通过直接调用Bluez堆栈来为Android设备编写A2DP宿设备.但是我的最后一个问题是也可以与Bluedroid堆栈一起使用吗?希望Bluedroid只是Bluez的扩张. 请帮助. 解决方案 bluedroid是由Broadcom提供的堆栈,现在在Android中openSource. Bluedroid在任何方面都与Bluez无关,它对Bluez的一些优势(我与此不
742 2022-07-19
编程技术问答社区
需要了解在安卓/非安卓设备之间通过A2DP发送/接收音频的想法
我需要能够通过蓝牙发送和接收音频,似乎a2dp是这样做的东西 使用给定的代码在这里,我设法让我的手机检测和与远程蓝牙设备配对,然后建立A2DP连接,通过蓝牙将Android设备的所有音频输出发送到远程遥控器 我以前能够通过RFCOMM执行与相同远程蓝牙设备的两种方式数据通信(虽然是发起通信的android手机,但我无法通过远程设备进行,虽然我知道它是可能的).建立RFCOMM链接后,Android设备可以将数据发送到远程设备,以及从其接收数据 现在我需要的是类似的东西,但是对于音频(优选地使用A2DP,但我打开了使用其他无论如何,只要它完成工作).在围绕窥探,所以我有提示,通过A2DP接收电话上的音频数据(至少一个未加速的正常的一个,根不是Me 的选项)(参见例如,这里).但我也看到耳机,允许通过蓝牙完全打电话(井,实际上是无线的,我假设它必须是蓝牙).例如,对于来电,您只需按蓝牙耳机上的按钮,然后可以谈谈并收听另一方.如果手机不能用作音频接收器,这种耳机如何做到这一点?
1022 2022-07-19
编程技术问答社区