Twilio客户端语音呼叫扬声器ON / OFF问题

时间:2016-06-18 05:44:32

标签: ios objective-c twilio twilio-click-to-call

我正在使用Twilio client语音电话服务进行通话。

这里我在spearke开/关功能方面面临问题。我可以静音/取消静音但无法打开/关闭扬声器。我有两个功能相同的实例。我还检查了他们的演示项目基本电话,因为这个扬声器ON / OFF正在工作,我在我的项目中做同样的事情也不能做同样的事情。

这是我的代码:

if(isSpeaker == NO)
{
     isSpeaker=YES;
     [self.phone setSpeakerEnabled:YES];
}
else{
     isSpeaker=NO;
     [self.phone setSpeakerEnabled:NO];
}

self.phone是BasicPhone的sharedInstance(他们的调用管理器类),我在>中测试应用程序。 iOS 9既是demo又是我的项目。

2 个答案:

答案 0 :(得分:3)

我已在iOS上使用此代码成功启用/禁用免提电话。它没有使用Twilio设备,并且在一定程度上特定于React Native,但每个功能的核心应该有效:

RCT_EXPORT_METHOD(setSpeakerPhoneOn) {
AVAudioSession *session = [AVAudioSession sharedInstance];
NSError *error;

[session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error];
}

RCT_EXPORT_METHOD(setSpeakerPhoneOff) {
AVAudioSession *session = [AVAudioSession sharedInstance];
NSError *error;

[session overrideOutputAudioPort:AVAudioSessionPortOverrideNone error:&error];
}

答案 1 :(得分:0)

Swift 5,使用以下代码段

///在连接到会议室后更改音频路由。

func moveToMic(){

    audioDevice.block = {
        DefaultAudioDevice.DefaultAVAudioSessionConfigurationBlock()
        do {
            try AVAudioSession.sharedInstance().setMode(.voiceChat)
            try AVAudioSession.sharedInstance().overrideOutputAudioPort(.none)
        } catch {
            print(error)
        }
    }

    audioDevice.block();

}

func moveToSpeaker(){

    audioDevice.block = {
        DefaultAudioDevice.DefaultAVAudioSessionConfigurationBlock()
        do {
            try AVAudioSession.sharedInstance().setMode(.videoChat)
            try AVAudioSession.sharedInstance().overrideOutputAudioPort(.none)
        } catch {
            print(error)
        }
    }

    audioDevice.block();

}