我正在开发一个应用程序,其中我正在使用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是扬声器,那么输入是扬声器,反之亦然
您还可以引用最受欢迎的应用程序,例如WhatsApp,Google Duo,但不存在此类选项。
希望能帮助到你
关于swift - 将音频通话扬声器转换为麦克风,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52538305/