【问题标题】:Replacement for GCKSession.resume() in Google Cast iOS SDK 4.x?替换 Google Cast iOS SDK 4.x 中的 GCKSession.resume()?
【发布时间】:2018-07-23 01:36:02
【问题描述】:

使用 Google Cast iOS SDK 3.5.6,我有一些逻辑可以在需要时检测和恢复现有的演员会话。像这样的:

func connectToDevice(_ device: GCKDevice, sessionId: String?) {
    var resumed = false
    if let session = sessionManager.currentSession {
        if session.device == device {
            session.resume()
            resumed = true
        } else {
            sessionManager.endSession()
        }
    }

    if !resumed {
        sessionManager.startSession(with: device)
    }
}

GCKSession.resume() 已被 SDK v4.0.2 弃用。我没有看到明显的替代品,并且简单地忽略现有会话不是一种选择(请参阅下面的代码作为不起作用的示例)

func connectToDevice(_ device: GCKDevice, sessionId: String?) {
    if let session = sessionManager.currentSession {
        sessionManager.endSession()  // This doesn't help
    }
    DispatchQueue.main.asyncAfter(.now()+5.0) {   // endSession() is asynchronous, so need to give some time  
        sessionManager.startSession(with: device) // This will fail in situations where 'session' isn't nil
    }
}

我们应该如何使用 SDK v4.x 处理这种情况?

【问题讨论】:

    标签: chromecast google-cast google-cast-sdk


    【解决方案1】:

    是的,你说得对,SDK v4.0.2 不推荐使用 GCKSession.resume(),现在,会话只有开始和停止;默认情况下,SDK 在内部处理简历。

    在 v4.0.2 中,我建议您将恢复会话留给会话管理器,看看它是否可以完成您的工作。

    【讨论】:

      猜你喜欢
      • 2015-08-05
      • 1970-01-01
      • 1970-01-01
      • 2021-03-27
      • 2017-05-24
      • 2020-01-05
      • 1970-01-01
      • 2014-04-14
      • 2020-01-01
      相关资源
      最近更新 更多