私はCallKitアプリケーションを開発中です。問題はあります。ユーザーがアプリ内呼び出し画面に戻るまでCallKit画面でコールを「スワップ」すると、コールを交換した後にCallKitがサウンドを再アクティブ化できる
supportsHolding = false
を私は、私はこの問題を解決することができ、これを正しく行うことができます例えばのWhatsApp:私は更新することで、これをバイパスすることができます!
p.s.私はwebrtcを使って電話をかけています!
ありがとうございました!
EDIT:
これは、プロバイダのコードです:
public func provider(_ provider: CXProvider, perform action: CXSetHeldCallAction) {
guard let call = conductor!.callWithUUID(uuid: action.callUUID) else {
WebRtcConductor.debug("\(self.TAG) failed to perform HeldAction: uuid: \(action.uuid), calluiid: \(action.callUUID)")
action.fail()
return
}
setIsHeld(call: call, isHeld: action.isOnHold)
action.fulfill()
}
setIsHeld機能は、単に実行します。私はcallkit画面の "ミュート" ボタンを使用している場合
audioTrack.isEnabled = enabled
を、すべてが正常に動作します私はwebrtc呼び出しから通常の呼び出しにスワイプすると、CXSetHeldCallActionが呼び出され、オーディオトラックが無効になりました。私が再びwebrtc呼び出しにスワイプすると、オーディオトラックは有効になりますが、私は何もしません何も聞こえない、私がメインのアプリ画面に戻ると、オーディオは再びうまくいく!
あなたが書いた関連コードを表示するだけでなく、何が起こっているのか、何が起こるのかを明確に説明してください。 – jbehrens94
もっとコードを追加しました!ありがとう! –