我正在尝试实现基本视频通话的代码示例 一切运行顺利,只是当我与电话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;
}
答案 0 :(得分:0)
Agora SDK支持回声消除。在大多数情况下,可以使用耳机解决此问题,并确保耳机不会引起回声。
在有多个用户加入的频道中,如果设备无法正常运行,则该频道中的所有其他用户都有可能听到回声。因此,请注意,听到回声的用户不一定是有问题的人。
自检步骤: 检查以下内容:
找到回声的来源。您可以使通道中的用户一个一个静音,以找到回声的来源。 检查回声是偶然的还是连续的。 CPU过载可能会引起偶尔的回声。通过使用Agora Analytics的呼叫搜索功能,您可以在“端到端详细信息”页面上检查CPU使用率。 确保所有用户都位于单独的物理环境中,并且彼此之间不要坐在得太近。 检查SDK版本:
检查是否启用了外部音频源。如果是这样,则默认情况下将关闭回声消除。 在Windows中,确保未选中“监视麦克风”选项。 在iOS上,检查应用程序是否将“音频会话”设置为AVAudioSessionCategoryOptionMixWithOthers。如果是这样,当其他应用程序同时使用音频设备时,您可能会遇到回声。 某些Android或Windows设备的系统默认情况下支持回声消除功能,如果系统的回声消除效果不佳,则可能会遇到回声。在这种情况下,Agora建议在系统中禁用回声消除,并使用Agora的回声消除。
使用耳机: 在一对一通话中,如果听到回声,请其他用户使用耳机。 在多用户呼叫中,请用户依次静音以找出引起回声的人。引起回声的用户应使用耳机或使自己静音。
有关进一步的帮助和最新的常见问题解答,请参见https://docs.agora.io/en/faq/echo