Agora io Unity Demo 不加入频道
Agora io Unity Demo not joining channel
我在 macOS Catalina 10.15 上使用 Angora Unity SDK 2.9.2.2 和 Unity 2019.4.0f1。 6.
我正在尝试让演示场景正常工作。我添加了一个 appId,但是我没有看到 onJoinChannelSuccess 调试日志。它怀疑 JoinChannel 调用没有成功。
我已经从 JoinChannel 注销了 return,我得到 -7。从文档中我了解到任何低于 0 的值都是失败的,但我没有收到任何错误消息并且文档中未引用代码 -7。
有人知道这个错误是什么吗,或者我如何才能访问有关它的更多详细信息?
你真的有调用这行代码吗,
mRtcEngine.OnJoinChannelSuccess = onJoinChannelSuccess;
(请注意,“onJoinChannelSuccess”可以是您选择的任何函数名称。在演示中他们将其设为“同一个词”这一事实可能会造成混淆。)
关于那个函数,类型是“private async void”(不仅仅是“void”)
private async void onJoinChannelSuccess(string channelName, uint uid, int elapsed)
{
// "this app" joined Agora
Debug.Log(">> onJoinChannelSuccess my own uid " + uid);
}
--
根据评论,您必须
public void loadAgoraEngine()
{
string agoraId = "66666....";
if (mRtcEngine != null)
{
Debug.Log("Agora engine exists already!!");
return;
}
mRtcEngine = IRtcEngine.GetEngine(agoraId);
mRtcEngine.SetLogFilter(LOG_FILTER.DEBUG | LOG_FILTER.INFO | LOG_FILTER.WARNING | LOG_FILTER.ERROR | LOG_FILTER.CRITICAL);
Debug.Log("loadAgoraEngine - seemed OK");
}
然后你必须
做三件事,
public void joinAgora(string channelName)
{
Debug.Log(">> joinAgora .. " + channelName);
Debug.Log(">> agora version .. " + IRtcEngine.GetSdkVersion() );
if (mRtcEngine == null) { return; }
_setup();
mRtcEngine.EnableVideo();
mRtcEngine.EnableVideoObserver();
mRtcEngine.JoinChannel(channelName, null, 0);
}
其中“设置”只是回调:
void _setup()
{
mRtcEngine.OnJoinChannelSuccess = onJoinChannelSuccess;
mRtcEngine.OnUserJoined = onUserJoined;
mRtcEngine.OnUserOffline = onUserOffline;
}
运气好吗?
最后我发现我的问题是由于我使用的 Agora appId,它在 agora 控制台中激活了证书,这意味着连接成功我必须同时提交令牌。
为了解决这个问题,我刚刚在 Agora 网站上创建了一个新的 appId 并确保它使用的是 APP_ID 身份验证方法 并且它非常有效。
感谢@Fattie,他尽一切可能帮助我,并将我推向了非常有用的 Slack 频道,我会向其他面临问题的人推荐。
我在 macOS Catalina 10.15 上使用 Angora Unity SDK 2.9.2.2 和 Unity 2019.4.0f1。 6.
我正在尝试让演示场景正常工作。我添加了一个 appId,但是我没有看到 onJoinChannelSuccess 调试日志。它怀疑 JoinChannel 调用没有成功。
我已经从 JoinChannel 注销了 return,我得到 -7。从文档中我了解到任何低于 0 的值都是失败的,但我没有收到任何错误消息并且文档中未引用代码 -7。
有人知道这个错误是什么吗,或者我如何才能访问有关它的更多详细信息?
你真的有调用这行代码吗,
mRtcEngine.OnJoinChannelSuccess = onJoinChannelSuccess;
(请注意,“onJoinChannelSuccess”可以是您选择的任何函数名称。在演示中他们将其设为“同一个词”这一事实可能会造成混淆。)
关于那个函数,类型是“private async void”(不仅仅是“void”)
private async void onJoinChannelSuccess(string channelName, uint uid, int elapsed)
{
// "this app" joined Agora
Debug.Log(">> onJoinChannelSuccess my own uid " + uid);
}
--
根据评论,您必须
public void loadAgoraEngine()
{
string agoraId = "66666....";
if (mRtcEngine != null)
{
Debug.Log("Agora engine exists already!!");
return;
}
mRtcEngine = IRtcEngine.GetEngine(agoraId);
mRtcEngine.SetLogFilter(LOG_FILTER.DEBUG | LOG_FILTER.INFO | LOG_FILTER.WARNING | LOG_FILTER.ERROR | LOG_FILTER.CRITICAL);
Debug.Log("loadAgoraEngine - seemed OK");
}
然后你必须
做三件事,
public void joinAgora(string channelName)
{
Debug.Log(">> joinAgora .. " + channelName);
Debug.Log(">> agora version .. " + IRtcEngine.GetSdkVersion() );
if (mRtcEngine == null) { return; }
_setup();
mRtcEngine.EnableVideo();
mRtcEngine.EnableVideoObserver();
mRtcEngine.JoinChannel(channelName, null, 0);
}
其中“设置”只是回调:
void _setup()
{
mRtcEngine.OnJoinChannelSuccess = onJoinChannelSuccess;
mRtcEngine.OnUserJoined = onUserJoined;
mRtcEngine.OnUserOffline = onUserOffline;
}
运气好吗?
最后我发现我的问题是由于我使用的 Agora appId,它在 agora 控制台中激活了证书,这意味着连接成功我必须同时提交令牌。
为了解决这个问题,我刚刚在 Agora 网站上创建了一个新的 appId 并确保它使用的是 APP_ID 身份验证方法 并且它非常有效。
感谢@Fattie,他尽一切可能帮助我,并将我推向了非常有用的 Slack 频道,我会向其他面临问题的人推荐。