react-native-webrtc / react-native-webrtc/react-native-incall-manager

Glitchy Audio During WebRTC Call on Both Android & iOS (react-native-webrtc + InCallManager)

Open
#253 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
597
Forks
201
Avg merge
2h 42m
Merged PRs (30d)
1

Description

Hi Team,

I'm currently implementing video calling using react-native-webrtc and handling audio routing via react-native-incall-manager. The video component is working flawlessly; however, I'm facing a serious issue with audio quality during the call. The sound is often glitchy, distorted, or contains unwanted noise.

export async function startInCallManage() {
try {
InCallManager.start({media: 'video', auto: true});
InCallManager.setSpeakerphoneOn(true);
InCallManager.setMicrophoneMute(false);
return await pauseProcessing(1);
} catch (error) {
throw error;
}
}

export function stopInCallManager() {
try {
return InCallManager.stop();
} catch (error) {
throw error;
}
}
useEffect(() => {
setTimeout(async () => {
try {
await startInCallManage();
await startCall();
} catch (error) {
console.log('Error while starting call', error);
}
}, 1000);
}, []);

Key Observations

  • Audio becomes clear and stable when one peer mutes their microphone.
  • This suggests that the issue could be related to echo cancellation, audio routing conflicts, or hardware-level interference when both peers have their mics active.

What I’ve Tried
Delaying peer connection setup until after InCallManager.start().

Using native code to adjust audio modes and routing on Android.

Enabling/disabling speakerphone, muting/unmuting mic as a test.

Request
If needed, I can share the code where I establish the WebRTC peer connection, in case something there might be contributing to the issue.

I’d really appreciate any help or guidance to resolve this — especially from others who may have successfully implemented high-quality audio using react-native-webrtc.

Thank you in advance!

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the shown startInCallManage and stopInCallManager functions, then inspect the referenced peer-connection setup and native Android routing changes. Reproduce a call with both microphones active on Android and iOS, and compare it with the muted-peer case; done means audio is clear and stable without requiring either peer to mute.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, react-native
Domain
audio-video-rtc, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.