【问题标题】:Google Cast new session not starting swift iosGoogle Cast 新会话未启动 swift ios
【发布时间】:2019-07-31 19:07:55
【问题描述】:

我需要一个自定义视图来显示可用设备并进行连接。我使用了 GCKDiscoveryManager。它返回一个 GCKDevice。 现在,当我尝试与设备启动新会话时,每次都会失败。这是我的代码:

let sessionManager = GCKCastContext.sharedInstance().sessionManager
 var devices = [GCKDevice](){
    didSet{
        discoveryTableView.reloadData()
    }
 }

override func viewDidLoad() {
    super.viewDidLoad()

    GCKCastContext.sharedInstance().discoveryManager.add(self)
    GCKCastContext.sharedInstance().discoveryManager.startDiscovery()

    sessionManager.add(self)

}

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let device = devices[indexPath.row]

    print(sessionManager.startSession(with: device))

}

现在只有设备发现在工作。

extension DevicesViewController: GCKDiscoveryManagerListener, GCKSessionManagerListener{
func didUpdateDeviceList() {
    print("did update here")
}

func didInsert(_ device: GCKDevice, at index: UInt) {
    self.devices.append(device)
}

func sessionManager(_ sessionManager: GCKSessionManager, didStart session: GCKSession) {
    sessionManager.currentCastSession!.add(textChannel)
    print("session started")
}

func sessionManager(_ sessionManager: GCKSessionManager, didStart session: GCKCastSession) {
    print("cast session started")
}

func sessionManager(_ sessionManager: GCKSessionManager, didFailToStart session: GCKSession, withError error: Error) {
    print(error.localizedDescription)
}

func sessionManager(_ sessionManager: GCKSessionManager, didFailToStart session: GCKCastSession, withError error: Error) {
    print(error.localizedDescription)
}


}

我已经按照文档在 AppDelegate.swift 中实现了所需的代码。

【问题讨论】:

  • 您提到每次与设备启动新会话时都会失败,您能否在尝试复制问题时分享任何错误或日志?
  • 我没有从协议中得到消息,我已经实现了它们。

标签: ios swift chromecast


【解决方案1】:

Chromecast SDK 是在 Objective-C 上编写的 所以你需要在你的监听方法中添加@objc

@objc func sessionManager(_ sessionManager: GCKSessionManager, didStart session: GCKSession) {
    sessionManager.currentCastSession!.add(textChannel)
    print("session started")
}

@objc func sessionManager(_ sessionManager: GCKSessionManager, didStart session: GCKCastSession) {
    print("cast session started")
}

@objc func sessionManager(_ sessionManager: GCKSessionManager, didFailToStart session: GCKSession, withError error: Error) {
    print(error.localizedDescription)
}

@objc func sessionManager(_ sessionManager: GCKSessionManager, didFailToStart session: GCKCastSession, withError error: Error) {
    print(error.localizedDescription)
}

【讨论】:

    猜你喜欢
    • 2020-06-24
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 2015-05-02
    • 2023-03-05
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多