我正在开发一个应用程序,其中我正在使用twilio进行视频通话。现在,当我进行视频通话时,它可以正常运行。但是双方的声音都在扬声器上,我想给用户提供灵活性,使其可以使用扬声器或麦克风讲话,我该如何使用swift做到这一点?我已经搜索了它,它向我显示了此功能,该功能在扬声器中启用和禁用,但不转换为麦克风。我如何将扬声器声音转换为麦克风或将麦克风转换为扬声器?

 @IBAction func speakerBtnTapped(_ sender: Any) {
    if (self.localAudioTrack != nil) {
        //MARK:- Usage  for Enable
        self.setAudioOutputSpeaker(enabled: true)
    }
    else
    {
        //MARK:- Usage  for Disable
        self.setAudioOutputSpeaker(enabled: false)
    }
}
//MARK:- Manual Speaker Enagle and Disable
func setAudioOutputSpeaker(enabled: Bool)
{
    let session = AVAudioSession.sharedInstance()
    var _: Error?
    try? session.setCategory(AVAudioSessionCategoryPlayAndRecord)
    try? session.setMode(AVAudioSessionModeVoiceChat)
    if enabled {
        try? session.overrideOutputAudioPort(AVAudioSessionPortOverride.speaker)
    } else {
        try? session.overrideOutputAudioPort(AVAudioSessionPortOverride.none)
    }
    try? session.setActive(true)
}

最佳答案

如果我理解正确,那么您想提供一个功能,用户可以选择语音输入方式(扬声器或麦克风),而该功能在现有的iOS技术中不可用。

overrideIutputAudioPort没有方法,只有您可以overrideOutputAudioPort并根据您的选择将传入的语音发送到Speaker或Microphone。


  现在,如果overrideOutputAudioPort是扬声器,那么输入是扬声器,反之亦然


您还可以引用最受欢迎的应用程序,例如WhatsAppGoogle Duo,但不存在此类选项。

希望能帮助到你

关于swift - 将音频通话扬声器转换为麦克风,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52538305/

10-13 04:00