Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 打开/关闭VOIP呼叫的麦克风_Ios_Swift3_Voip_Twilio Click To Call - Fatal编程技术网

Ios 打开/关闭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 {

我正在开发一个VoIP应用程序,我想实现一个呼叫控制面板。 我已成功实现扬声器/扬声器功能。 但在VoIP通话时无法打开/关闭麦克风

我尝试了以下代码:

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]);