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

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

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

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

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

蓝牙状态下 切换到听筒、扬声器、切回
切换听筒!!

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

切换扬声器!!

        [[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];
        [[AVAudioSession sharedInstance] setActive:YES error:nil];

切换回蓝牙!!!

      [[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideNone error:nil];
      [[AVAudioSession sharedInstance] setActive:YES error:nil];

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

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容