Agora.io - 如何在使用视频聊天时消除回声
Posted
技术标签:
【中文标题】Agora.io - 如何在使用视频聊天时消除回声【英文标题】:Agora.io - How to remove echo sound when using video chat 【发布时间】:2020-07-30 14:40:02 【问题描述】:我正在尝试实现基本视频通话的代码示例 一切都很顺利,只是当我与电话 A 通话时,声音转移到电话 B 并在句末附加了回声,任何人都知道如何消除回声。 它发生在我的 A10 和 A71 以及计算机上。 我的脚本:
public void JoinChannel(string channelName)
//set callback
Debug.Log("Join channel");
screen1.SetActive(true);
screen2.SetActive(true);
joinButton.SetActive(false);
inputField.SetActive(false);
mRtcEngine.OnJoinChannelSuccess = OnJoinChannelSuccess;
mRtcEngine.OnUserJoined = OnUserJoined;
mRtcEngine.OnUserOffline = OnUserOffline;
//enable video
mRtcEngine.EnableVideo();
//allow camera output callback
mRtcEngine.EnableVideoObserver();
//join the channel
mRtcEngine.JoinChannel(channelName, null, 0);
private void OnUserJoined(uint uid, int elapsed)
textDebug.GetComponent<Text>().text = "OnUserJoined";
Debug.Log("OnUserJoined");
GameObject go;
go = screen1;
go.name = uid.ToString();
VideoSurface o = go.AddComponent<VideoSurface>();
o.SetForUser(uid);
o.SetEnable(true);
Debug.Log(uid);
mRemotePeer = uid;
【问题讨论】:
【参考方案1】:Agora SDK 支持回声消除。在大多数情况下,这个问题可以通过使用耳机来解决,并确保耳机不会产生回声。
在多个用户加入的频道中,如果设备无法正常工作,则频道中的所有其他用户都可能会听到回声。因此,请注意,听到回声的用户不一定是有问题的用户。
自检步骤: 检查以下内容:
找到回声的来源。您可以将频道中的用户一一静音,以找到回声的来源。 检查回声是偶发的还是连续的。 CPU 过载可能会导致偶尔出现回声。通过 Agora Analytics 的 Call Search 功能,您可以在 End-to-End Details 页面查看 CPU 使用率。 确保所有用户都处于分开的物理环境中,并且彼此之间不要坐得太近。 检查 SDK 版本:
android/ios:v1.6.0+。 Windows/macOS:v1.7.0+。检查您是否启用了外部音频源。如果是这样,回声消除默认关闭。 在 Windows 中,确保未选中监控麦克风选项。 在 iOS 上,检查应用是否将 Audio Session 设置为 AVAudioSessionCategoryOptionMixWithOthers。如果是这样,当其他应用程序同时使用音频设备时,您可能会遇到回声。 部分 Android 或 Windows 设备的系统默认支持回声消除功能,如果系统的回声消除较差,您可能会遇到回声。在这种情况下,Agora 建议在系统中禁用回声消除,并使用 Agora 的回声消除。
使用耳机: 在一对一通话中,如果您听到回声,请让其他用户使用耳机。 在多用户通话中,要求用户依次静音,以找出造成回声的原因。引起回声的用户应使用耳机或将自己静音。
如需更多帮助和最新常见问题解答,请参阅https://docs.agora.io/en/faq/echo
【讨论】:
好像两个设备在一个房间里会有回声,会测试更多看看以上是关于Agora.io - 如何在使用视频聊天时消除回声的主要内容,如果未能解决你的问题,请参考以下文章
如何基于 ZEGO SDK 实现回声消除自动增益控制降噪功能
Agora.io - 如何使用 mediaPlayer 共享视频时间戳? - iOS
如何在 URL 中嵌入 App ID 和 Channel ID (Agora.io)