我正在使用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又是我的项目。
答案 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();
}