1. 首页 > 电脑知识

iOS APP语音通话 经过中蓝牙耳机切换听筒或扬声器 苹果手机语音通话功能

作者:admin 更新时间:2025-06-22
摘要:iOS APP语音通话过程中蓝牙耳机切换听筒或扬声器最近在基于sip 写语音通话功能,app需要兼容蓝牙耳机,中间出现过好多莫名其妙的问题 ,这是研究过程中踩过的坑1、实时通话,需要设置Category为AVAudioSessionCategoryPlayAndRecord,这个不要改变,否则会出现各种没声音的问题。2、适配蓝牙耳机的时候,不需要专门,iOS APP语音通话 经过中蓝牙耳机切换听筒或扬声器 苹果手机语音通话功能

 

iOS APP语音通话 经过中蓝牙耳机切换听筒或扬声器

最近在基于sip 写语音通话功能,app需要兼容蓝牙耳机,中间出现过好多莫名其妙的 难题 ,这是研究 经过中踩过的坑

1、实时通话,需要设置Category为 AudioSessionCategoryPlayAndRecord,这个不要改变,否则会出现各种没声音的 难题。

2、适配蓝牙耳机的时候,不需要专门修改options为 AudioSessionCategoryOptionAllowBluetooth

蓝牙 情形下 切换到听筒、扬声器、切回 切换听筒!!

NSArray* builtinRoutes = @[ AudioSessionPortBuiltInMic]; NSArray* routes = [[ AudioSession sharedInstance] availableInputs]; AudioSessionPortDescription* builtinPort; for ( AudioSessionPortDescription* route in routes){ if ([builtinRoutes containsObject:route.portType]) { builtinPort = route; } } [[ AudioSession sharedInstance] setPreferredInput:builtinPort error:nil];

切换扬声器!!

[[ AudioSession sharedInstance] overrideOutputAudioPort: AudioSessionPortOverrideSpeaker error:nil]; [[ AudioSession sharedInstance] setActive:YES error:nil];

切换回蓝牙!!!

[[ AudioSession sharedInstance] overrideOutputAudioPort: AudioSessionPortOverrideNone error:nil]; [[ AudioSession sharedInstance] setActive:YES error:nil];

感谢原文:https://blog.csdn.net/u014274590/article/details/81098135