我已经设置了一个通道来接收来自接收方应用程序的消息:
import Foundation
import GoogleCast
class GcastChannel: GCKCastChannel {
var gcastDelegate: GcastDelegate?
override func didReceiveTextMessage(_ message: String) {
if let jsonData = message.data(using: .utf8) {
do {
let gcastEvent = try JSONDecoder().decode( GcastEvent.self, from: jsonData)
gcastDelegate?.didReceiveGcastEvent(event: gcastEvent)
} catch {
print("message decode error: (error)")
}
}
}
}
并在主视图控制器中设置会话管理器和侦听器:
func sessionManager(_ sessionManager: GCKSessionManager, didStart session: GCKCastSession) {
castSession = session
castSession?.add(gcastChannel)
gcastChannel.gcastDelegate = self
}
当应用程序位于前台时,它可以完美运行,但是当应用程序在后台时,它不再响应事件。此外,当应用再次置于前台时,应用仍然对发送的事件没有响应。如何让应用在后台时响应事件?
基于此链接,当应用程序处于后台时,无法将新媒体从应用程序推送到 chromecast。
对于 iOS 发送器 API 的 2.0 版,
GCKCastSocket
在收到UIApplicationDidEnterBackgroundNotification
时关闭,这不是可以配置的内容。
你也可以参考这篇文章: 如何保持Chrome Cast在后台iOS中运行?.