2017-04-25 5 views
0

Ich arbeite an VOIP-App, ich möchte Call Control Panel für Anruf implementieren. Ich habe die Lautsprecher-/Lautsprecherfunktion erfolgreich implementiert. Das Mikrofon konnte während des VOIP-Anrufs nicht ein- und ausgeschaltet werden.MIC für VOIP-Anruf ein-/ausschalten

ich unten Code versucht:

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) 
    } 

Antwort

0

diesen Link Versuchen: https://forums.developer.apple.com/message/64086#64086

// 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]); 
+0

Meine Frage ist das Mikrofon ein-/auszuschalten, ich denke, Ihr Code ist das Mikrofon Typ zurück von unten. – krish

+0

Überprüfen Sie diesen Link https://developer.apple.com/reference/avfoundation/avaviussession –

Verwandte Themen