【问题标题】:Agora io Unity Demo not joining channelAgora io Unity Demo 未加入频道
【发布时间】:2020-09-23 22:00:17
【问题描述】:

我在 ma​​cOS Catalina 10.15.6 上使用 Angora Unity SDK 2.9.2.2Unity 2019.4.0f1

我正在尝试让演示场景工作。我添加了一个 appId,但是我没有看到 onJoinChannelSuccess 调试日志。它怀疑 JoinChannel 调用没有成功。

我已退出 JoinChannel 的返回,我得到 -7。从文档中我了解到,任何低于 0 的值都是失败的,但我没有收到任何错误消息,并且文档中没有引用代码 -7

有没有人知道这个错误是什么,或者我可以如何访问有关它的更详细信息?

【问题讨论】:

  • Matt,你有什么理由不使用 Unity 2020.2 吗?
  • 你当然应该加入 Agora Unity slack 频道 - 在那里见!
  • 其实我没有理由不使用2020.2,我会尝试升级项目,看看有没有效果。
  • 在进一步检查文档后,我发现在其他情况下,.错误代码 -7 指的是 ERR_NOT_INITIALIZED。再一次,我似乎正在初始化引擎,所以我不确定为什么会收到此错误。
  • 添加了更多,@mattcarver !

标签: unity3d agora.io


【解决方案1】:

最后我发现我的问题是由于我使用的 Agora appId 在 agora 控制台中针对它激活了一个证书,这意味着要成功连接我必须提交一个同时令牌。

为了解决这个问题,我刚刚在 Agora 网站上创建了一个新的 appId,并确保它使用了 APP_ID 身份验证方法,它的工作原理就像一个魅力。

感谢@Fattie,他尽一切可能提供帮助,并将我推向了非常有用的 Slack 频道,我会向其他面临问题的人推荐。

【讨论】:

    【解决方案2】:

    你真的有这行代码被调用吗,

    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);
    }
    

    --

    除了cmets,你必须

    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 库提供的 Demo 场景,所以设置应该可以正常工作。奇怪的是,在演示代码中,onJoinChannelSuccess 没有定义为 async,不幸的是,即使在手动进行更改后,我仍然看到同样的问题。
    • 感谢@Fattie 的回复,我已经升级到2020.2.0b 并仔细检查了引擎是如何初始化的,这一切都符合您在此处的说明。恐怕还是一样的结果,虽然我现在只看到 -7 偶尔返回。现在我主要看到 0,这表明成功,但结果仍然相同,并且 OnJoinChannelSuccess 仍然没有触发。
    • 这真是一个难题,@MattCarver - 十分之十,如果你只是简单地下载演示并运行演示 - 它可以工作!你知道吗,你去 Agora 的最新测试版了吗?好多了 - V3 很棒
    • 通常我讨厌公司使用 Slack 作为支持渠道,但是 Slack 上的 Agora 支持很棒。只需在 Agora 网站上四处点击,基本上就有一个链接可以加入 slack agora-unity 频道。瑞克和他的伙伴们非常乐于助人
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    相关资源
    最近更新 更多