Ios 打开/关闭VOIP呼叫的麦克风
我正在开发一个VoIP应用程序,我想实现一个呼叫控制面板。 我已成功实现扬声器/扬声器功能。 但在VoIP通话时无法打开/关闭麦克风 我尝试了以下代码:Ios 打开/关闭VOIP呼叫的麦克风,ios,swift3,voip,twilio-click-to-call,Ios,Swift3,Voip,Twilio Click To Call,我正在开发一个VoIP应用程序,我想实现一个呼叫控制面板。 我已成功实现扬声器/扬声器功能。 但在VoIP通话时无法打开/关闭麦克风 我尝试了以下代码: muteButton.setImage(UIImage(named:"mute_icon"), for: .normal) do { let audioSession = AVAudioSession.sharedInstance() if audioSession.isInputGainSettable {
muteButton.setImage(UIImage(named:"mute_icon"), for: .normal)
do {
let audioSession = AVAudioSession.sharedInstance()
if audioSession.isInputGainSettable {
try audioSession.setInputGain(0.0)
}
} catch {
NSLog(error.localizedDescription)
}
请尝试以下链接:
我的问题是打开/关闭麦克风,我想你的代码是让麦克风类型回到底部
// activate the audio session
[[AVAudioSession sharedInstance] setActive:YES error:&error];
if (error) NSLog(@"ERROR SETTING SESSION ACTIVE! %ld", (long)error.code);
// select the built-in Back mic if available
NSArray *portDescriptions = sessionInstance.availableInputs;
AVAudioSessionPortDescription* builtInMicPort = nil;
AVAudioSessionDataSourceDescription* backDataSource = nil;
NSLog(@" availableInputs:\n");
NSLog(@"%@", portDescriptions);
for (AVAudioSessionPortDescription* port in portDescriptions) {
if ([port.portType isEqualToString:AVAudioSessionPortBuiltInMic]) {
builtInMicPort = port;
break;
}
} // end input iteration
NSLog(@" port Info:\n");
NSLog(@"%@", builtInMicPort.portType);
NSLog(@"%@", builtInMicPort.portName);
NSLog(@"%@", builtInMicPort.channels);
NSLog(@" dataSources:\n");
NSLog(@"%@", builtInMicPort.dataSources);
NSLog(@"%@", builtInMicPort.preferredDataSource);
NSLog(@"%@", builtInMicPort.selectedDataSource);
if (builtInMicPort) {
for (AVAudioSessionDataSourceDescription* source in builtInMicPort.dataSources) {
if ([source.orientation isEqual:AVAudioSessionOrientationBack]) {
backDataSource = source;
break;
}
} // end data source iteration
if (backDataSource) {
NSError* theError = nil;
result = [builtInMicPort setPreferredDataSource:backDataSource error:&theError];
if (result) {
if (error) NSLog(@"ERROR SETTING PREFERRED DATA SOURCE! %ld", (long)error.code);
}
}
}
NSLog(@"Current route:\n");
NSLog(@"%@", [[AVAudioSession sharedInstance] currentRoute]);