gpt4 book ai didi

ios - Sinch 视频通话声音来自前置扬声器

转载 作者:行者123 更新时间:2023-11-28 15:08:51 25 4
gpt4 key购买 nike

我已经在 ios swift 项目中实现了 sinch 视频通话我已经遵循了 sinch 实现文档中给出的所有过程 https://www.sinch.com/docs/video/ios/#calling .而且我能够成功地实现,但我在来自前置扬声器的视频声音方面遇到了问题。我怎么解决这个问题??在我的代码下面:

var client: SINClient?
var sinCall : SINCall?

配置信奇

//MARK: Configuring Sinch Delegate
func configuringSinch(){
//Configuring Client Key
client = Sinch.client(withApplicationKey: Constants.SINCH_APP_KEY, applicationSecret: Constants.SINCH_PRIVATE_KEY, environmentHost: Constants.SANDBOX_ENVIRONMENT, userId: Utility().getUserId())

client?.call().delegate = self
client?.setSupportCalling(true)
client?.enableManagedPushNotifications()
client?.start()
client?.startListeningOnActiveConnection()

let vcCont = client?.videoController()
self.vwLocalView.addSubview((vcCont?.localView())!)

self.sinCall?.delegate = self

}

//MARK: Sinch Video Call Delegate
func clientDidStart(_ client: SINClient!) {
print("Client Did Start")
}

func clientDidFail(_ client: SINClient!, error: Error!) {
print("Client failed : \(error)")
player?.stop()
}
func clientDidStop(_ client: SINClient!) {
print("Client Did Stop")
player?.stop()
}

//MARK: Video Call Did Recieve
func client(_ client: SINCallClient!, didReceiveIncomingCall call: SINCall!) {
print("Did Recieve Incoming Call")

playRingtoneSound() // Playing Audio
call.delegate = self;
self.sinCall = call
}

//MARK: Call Did Add Video Track
func callDidAddVideoTrack(_ call: SINCall!) {
let videoCont = client?.videoController()
vwRemoteView.addSubview((videoCont?.remoteView())!)
}

func callDidEnd(_ call: SINCall!) {
sinCall?.hangup()

}

最佳答案

这就是您如何管理 SINAudioController 来管理音频输出。

func audioController() -> SINAudioController {
return (client?.audioController())!
}

//MARK: Video Call Did Recieve
func client(_ client: SINCallClient!, didReceiveIncomingCall call: SINCall!) {
audioController().enableSpeaker()

playRingtoneSound() // Playing Audio
call.delegate = self;
self.sinCall = call
}

// In SINCallDelegate
func callDidEstablish(_ call: SINCall!) {

//to disableSpeaker
audioController().disableSpeaker()
}

试试这个手动管理音频输出 session

// MARK: AudioOutput Session

// to enable front speaker manually
func setSessionPlayerOn()
{
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord)
} catch _ {
}
do {
try AVAudioSession.sharedInstance().setActive(true)
} catch _ {
}
do {
try AVAudioSession.sharedInstance().overrideOutputAudioPort(AVAudioSessionPortOverride.none)
} catch _ {
}
}

// to enable speaker manually
func setSessionPlayerSpeaker()
{
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord)
} catch _ {
}
do {
try AVAudioSession.sharedInstance().setActive(true)
} catch _ {
}
do {
try AVAudioSession.sharedInstance().overrideOutputAudioPort(AVAudioSessionPortOverride.speaker)
} catch _ {
}
}

// to turnoff AudioOutput Session manually
func setSessionPlayerOff()
{
do {
try AVAudioSession.sharedInstance().setActive(false)
} catch _ {
}
}

关于ios - Sinch 视频通话声音来自前置扬声器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47978013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com