The 100ms Flutter SDK automatically applies the best-known settings to cancel echos from devices. However, some Android devices have issues with their hardware echo cancellation and can benefit from relying only on Software Echo cancellation.
By default, Hardware Echo cancellation is enabled in the SDK.
While we continually update the SDK with the latest known devices which have the issue, you may run into one we haven't tested with yet.
If you find that a certain device echoes when it joins a meeting despite this, turning off its hardware echo cancellation may solve the problem. This is because if hardware echo cancellation is supported by the device, the SDK prefers hardware over software.
Echo cancellation settings can only be applied before a meeting a joined. The 100ms Flutter SDK provides a way to implement this in the HMSSDK constructor before calling the build method.
💡 Note this option must selectively be turned off for devices based on their models disabling hardware echo cancellation for all devices will result in other devices echoing which didn't before.
Let's see how you can enable software echo cancellation:
HMSAudioTrackSetting audioTrackSetting = HMSAudioTrackSetting(useHardwareAcousticEchoCanceler:false); HMSTrackSetting hmsTrackSetting = HMSTrackSetting(audioTrackSetting: audioTrackSetting); HMSSDK hmsSDK = HMSSDK(hmsTrackSetting: hmsTrackSetting);