麦克风在iOS 13上无法与CallKit VoIP通话一起使用

问题描述 投票:0回答:1

我已经实现了Web RTC,并且运行良好。问题在于,当应用程序未打开或处于终止状态时,以及当我收到呼叫时,我无法将声音传递给其他用户,而却能够收听。我已经在CXAnswer呼叫委托之前配置了AVAudioSession。

func configureAudioSession() {
    let sharedSession = AVAudioSession.sharedInstance()
    do {
        try sharedSession.setCategory(AVAudioSession.Category.playAndRecord)
        try sharedSession.setMode(AVAudioSession.Mode.voiceChat)
        try sharedSession.setPreferredIOBufferDuration(TimeInterval(0.005))
        try sharedSession.setPreferredSampleRate(44100.0)
    } catch {
        debugPrint("Failed to configure `AVAudioSession`")
}
func provider(_ provider: CXProvider, perform action: CXAnswerCallAction) {

    guard let call = ProviderDelegate.callManager.callWithUUID(action.callUUID) else {
        action.fail()
        return
    }

    configureAudioSession()

    call.answer { error in
        if let error = error {
            print("ERROR: failed to answer: \(error.localizedDescription)")
        }
        action.fulfill()
    }
}
swift webrtc ios13 callkit swift5.2
1个回答
0
投票

对于使用iOS13 SDK(即Xcode 11)编译的应用程序,这不再可行:要求应用程序在收到PushKit VoIP通知后立即显示CallKit呼叫。

[在iOS 13上,Apple现在要求将所有VoIP推送通知作为新呼叫报告给CallKit框架。如果未在指定的时间范围内将VoIP推送通知报告给CallKit,iOS将终止该应用程序。如果没有向CallKit报告足够的VoIP推送通知,Apple将完全停止向应用程序传递VoIP推送通知。如果发生这种情况,客户将需要重新安装该应用程序才能再次获得VoIP推送通知。

带引号的回复

© www.soinside.com 2019 - 2024. All rights reserved.