Я использую голосовой движок WebRT C (действительно старый репозиторий) в моем приложении для собраний (без звонков) с помощью AVAudioSession.
Голос собеседника искажается, когда слышен через iPhone динамик. Звук нормальный на iPhone наушнике и других внешних динамиках, подключенных по bluetooth. Но когда вызывается
success = [session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error];
, голос становится искаженным и роботи c.
Ниже приведен код AVAudioSession:
success = [session setCategory:AVAudioSessionCategoryPlayAndRecord
withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker |
AVAudioSessionCategoryOptionAllowBluetooth error:&error];
[session setMode: AVAudioSessionModeVoiceChat error:&error];
Кто-нибудь сталкивался с этой проблемой? Любая помощь приветствуется.
Голосовой пакет отправляется водителю следующим образом:
webrtc::VoENetwork *veNetwork; // Declaration
// Send this chunk of data to the GIPS driver. (C++ code)
int error = veNetwork->ReceivedRTPPacket(chnl,packetData.getCurrent(),size);