3

我已经实现了 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()
    }
}
4

0 回答 0