Я настроил канал для получения сообщений от приложения-получателя:
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, пока приложение находится в фоновом режиме.
With the version 2.0 of the iOS Sender API, the
GCKCastSocketis closed upon receiving aUIApplicationDidEnterBackgroundNotificationand this is not something that can be configured.
Вы также можете сослаться на это сообщение: Как сохранить работу Chrome Cast в фоновом режиме iOS?.