0

使用 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 处理这种情况?

4

1 回答 1

0

是的,你是正确的 GCKSession.resume() 已被 SDK v4.0.2 弃用,现在,会话只有开始和停止;默认情况下,SDK 在内部处理简历。

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

于 2018-02-14T01:46:45.127 回答