2016-06-01 3 views
0

내 앱이 항상 녹화 중이며 전화 통화가 감지되면 소리가 재생되고 녹음이 중지됩니다. 전화가 오면 녹음이 계속됩니다.iOS가 백그라운드 상태에서 통화 상태를 모니터링합니다.

전경에서 CTCallCenter를 사용하여 이러한 작업을 수행했습니다.

그러나 앱이 백그라운드 일 때 CTCallCenter가 제대로 작동하지 않습니다. 내 앱에 백그라운드 플래그 "VoIp"를 추가하더라도 CTCallCenter는 CallDisconnected를 놓칠 수 있습니다. 이것은 iOS의 버그입니까?

그래서 "AVAudioSessionInterruptionNotification"을 시도했습니다. 그것은 하나의 InterruptBegin과 InterruptionEnd를 결코 놓치지 않는 것처럼 보였습니다. 그러나 InterruptionBegin이 감지 된 후에 사운드를 재생해야하므로 작동하지 않습니다. 분명히 InterruptionBegin은 오디오 세션이 비활성 상태이고 소리를 낼 수 없다는 것을 의미합니다.

필자의 경우 CTCallCenter를 실행할 수있는 방법이 있습니까?

+0

[CTCallCenter - 호출 이벤트 처리기 - 백그라운드 상태] 가능한 복제본 (http://stackoverflow.com/questions/10102108/ctcallcenter-call-event-handler-in-background-state) – nverinaud

답변

1

GSM 통화가 있는지 여부를 확인하는 유일한 방법은 GSM 통화에서 사용되는 오디오 장치의 가용성을 확인하는 것입니다. 당신이 활성 GSM 통화가 있는지 여부를

그래서

BOOL isOtherAudioPlaying=[[AVAudioSession sharedInstance] isOtherAudioPlaying]; 

는 당신을 말할 것이다. 오디오 장치를 사용하는 다른 앱과 부작용이 있는지 잘 모르겠습니다. 카메라 및 음성 메모로 시도해 보았습니다. 일시 중지되었으며 결과적으로 앱에 영향을 미치지 않는 것으로 보입니다.