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 では、この状況にどのように対処する必要がありますか?