通话过程如何与蓝牙设备配合使用?
Posted
技术标签:
【中文标题】通话过程如何与蓝牙设备配合使用?【英文标题】:How call process works with blue tooth devices? 【发布时间】:2013-02-25 14:16:55 【问题描述】:我在带有蓝牙耳机的 android 手机上测试了一些东西。我对此几乎没有问题。
设备规格:
Android 2.3 以上 耳机蓝牙配置:HFP,A2DP
我从 android 手机的“接受”按钮接听了一个电话,我能够听到蓝牙耳机的来电。之后,我将 android 设备移出范围并接受了来自 android 的呼叫,当 android 手机进入蓝牙范围时蓝牙耳机自动连接。是通用的,我的意思是所有的蓝牙耳机都支持相同的还是有任何偏差?
我想知道当我们从耳机或 Android 手机接听电话时会发生什么。Android 操作系统是否会创建一个通话会话/音频会话并在按下接受按钮时将其转移到耳机耳机。如果已经接到电话并且当耳机在蓝牙范围内时,Android 手机会将音量路由到耳机。在这两种情况下都会发生同样的事情(只是路由音频)。我想详细了解这两种情况的呼叫处理。有人可以帮我解决这个问题吗?
ios 中的调用流程有何不同?
编辑
当我们接受呼叫时,是否会创建像 AVAudoioSession 这样的呼叫会话?
@jjv360:
“即使连接了蓝牙耳机,应用也可以手动分配路线,在这种情况下,由应用来处理检测到新路线时发生的情况......”
是否可以在 iOS 应用程序中将通话会话路由到耳机(从麦克风到耳机 sco)?请您指点一下。
【问题讨论】:
【参考方案1】:在 iOS 上,如果您在音频会话处于活动状态时连接蓝牙耳机,当前的音频应用程序会收到通知,并且默认情况下会将会话的路由传输到耳机。即使连接了蓝牙耳机,应用程序也可以手动分配路线,在这种情况下,由应用程序来处理检测到新路线时发生的情况...
此外,AFAIK 设备(在很短的时间内)和耳机都会尝试重新连接,因此主要取决于耳机在超出范围时尝试重新连接。不过,几乎所有耳机都应该这样做。
无论使用哪个按钮接听电话(在设备上还是在耳机上),如果蓝牙耳机已连接,它将被使用,除非应用程序指定它不想使用该路由.
调用过程AFAIK对于Android和iOS是一样的。
使用所使用的协议,A2DP 是听音乐时使用的高质量协议。它支持高质量的音频,但是是单向的,所以只有在蓝牙耳机没有从麦克风录音的情况下才有效。当还需要录制时使用HFP,但质量较差。这就是为什么你会注意到,如果你在 iOS 上用蓝牙耳机听音乐,然后启动录音应用程序,音质会变差,直到你停止录音......
【讨论】:
是否可以在 iOS 应用程序中将通话会话路由到耳机?能否请您指点一下。 如果已连接,“通话”会话将始终默认为耳机,如果您正在谈论自己应用程序的音频会话,您可以使用 Audio Toolbox 框架中的属性和函数...如果您正在谈论控制其他应用程序的音频(这包括来自“电话”应用程序的普通电话),由于应用程序沙箱,您不能这样做......以上是关于通话过程如何与蓝牙设备配合使用?的主要内容,如果未能解决你的问题,请参考以下文章