Ich arbeite an einer App, die Videoanrufe mit einem SDK ermöglicht, das webRTC auf iOS verwendet.Wie erkennen Sie andere VOIP-Anrufe (iOS)?
Vorgesehene Funktion ist, dass, wenn ein anderer Anruf instanziiert wird, nachdem meine App einen Anruf instanziiert hat, möchte ich meine Audio in beide Richtungen in meinem Anruf stummschalten, bis dieser Anruf beendet ist, in diesem Fall wird Audio wiederhergestellt.
Ich habe ein Problem festgestellt, wo ich andere Anrufe erkennen, die VOIP-Anrufe (zum Beispiel WeChat und Facebook Messenger) machen.
Im Fall von WeChat habe ich das dadurch gelöst, dass es die geteilte Audiositzung (von AVAudioSession) unterbricht. Der Code, der das handhabt, ist wie folgt:
Diese Methode wird jedoch für Facebook Messenger nie aufgerufen. Ich spekuliere daraus, dass WeChat möglicherweise exklusiven Zugriff auf die geteilte Audiositzung verlangt (und somit eine Unterbrechung der Audiositzung mit meiner App verursacht), während Facebook Messenger seine Audiodaten mischt oder eine separate Audiositzung verwendet, wenn ein Anruf instanziiert wird .
Meine Frage ist, gibt es eine andere Möglichkeit, andere VOIP-Anrufe zu erkennen, möglicherweise mit dem CallKit-Framework? Meine App verwendet CallKit, um den Benutzer nach eingehenden Anrufen zu fragen und eingehende/ausgehende Anrufe im iOS-Telefonprotokoll aufzuzeichnen.