【问题标题】:How to join a SharePlay GroupSession correctly/programmatically?如何正确/以编程方式加入 SharePlay GroupSession?
【发布时间】:2022-06-12 00:03:39
【问题描述】:

我无法以编程方式加入共享游戏组会话。

首先我在一台设备上创建一个 SharePlay Activity

await SharePlayGame().activate()

如果成功,则创建者收听会话

 private func startSession() async {
        for await session in SharePlayGame.sessions() {
            configureGroupSession(session) // do session stuff
        }
    }

到目前为止,这是有效的。现在第二台设备将加入。我只打电话给startSession

然后什么都没有发生。我的假设是创建的会话由SharePlay 或 FaceTime 连接共享。

无论如何,当我打开 FaceTime 时,我看到有一个打开的会话。 FaceTime 为我提供了加入 GroupSession 的操作。如果我按下它,一切正常并且我的设备已连接(见图)。此设备之间的任何进一步事件都按预期工作。

当我使用await SharePlayGame().activate() 进行加入过程时,会创建一个新的 SharePlay 组会话。这总是显示系统对话框(“你想替换当前的 SharePlay 会话吗?”)然后我的代码也可以工作,但这不是正确的方法。

如何正确加入(或查找?)GroupSession 并加入。

【问题讨论】:

    标签: ios swift facetime shareplay


    【解决方案1】:

    好的,我发现了。 目前看来这是不可能的。我观看了所有 WWDC 视频并查看了整个文档。我尝试了很多来自大玩家的其他应用程序,每个人都通过 FaceTime 加入了会议。

    编辑:我在 15.4 的发行说明中读到它现在是可能的。但我没有找到任何 iOS 文档。

    【讨论】:

      【解决方案2】:

      任何设备都可以在特定的GroupActivity 上等待GroupSession。在激活GroupActivity 之前,不会开始任何设备的会话。两者是分开的。应用应在处理会话后立即启动等待GroupSession 的任务。

      GroupSession 特定于特定的GroupActivity。一个应用程序可能能够参与多个活动的会话,尽管我没有测试过。截至 WWDC 2022,Apple 表示一个应用程序可以在 GroupSession 上拥有多个 GroupSessionMessenger

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-05
        • 2021-07-12
        • 2014-06-07
        • 2019-05-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-10
        相关资源
        最近更新 更多