2016-06-01 8 views
0

私のアプリは常時録音中で、通話が検出されると音声が再生され、録音が停止されます。電話が終わったら、録音が続行されます。iOSがバックグラウンド状態でコール状態を監視しています

私はこれらの作業をフォアグラウンドのCTCallCenterで行いました。

ただし、アプリがバックグラウンドのときにCTCallCenterが正しく動作しません。私のアプリにバックグラウンドフラグ "VoIp"を追加しても、CTCallCenterはCallDisconnectedを逃してしまいます。これはiOSのバグですか?

私は「AVAudioSessionInterruptionNotification」を試しました。 1つのInterruptionBeginとInterruptionEndを決して逃さないように見えました。しかし、InterruptionBeginが検出された後でサウンドを再生する必要があるため、動作しません。どうやら、InterruptionBeginは、私のオーディオセッションがアクティブでなく、サウンドが作成できないことを意味します。

私の場合、CTCallCenterを実行可能にする方法はありますか?

+0

[CTCallCenter - コールイベントハンドラ - 背景の状態]の可能な複製(http://stackoverflow.com/questions/10102108/ctcallcenter-call-event-handler-in-background-state) – nverinaud

答えて

1

バックグラウンドでGSMコールがあるかどうかを確認する唯一の方法は、GSMコールで使用されるオーディオユニットの可用性をチェックすることです。

ので

BOOL isOtherAudioPlaying=[[AVAudioSession sharedInstance] isOtherAudioPlaying]; 

を使用すると、アクティブなGSM呼を持っているかどうかを教えてくれます。オーディオユニットを使用している他のアプリに副作用があるかどうかはわかりません。私はカメラとボイスメモで試してみました。彼らは一時停止しているように見えます。その結果、あなたのアプリには影響しません。

関連する問題