【问题标题】:GoogleCast deviceDidComeOnline(device: GCKDevice!) never getting Called #GoogleCastSDKGoogle Cast 设备 DidComeOnline(设备:GCC 设备!)永远不会被调用 #GoogleCastSDK
【发布时间】:2016-07-07 23:53:08
【问题描述】:

在 ViewController 上实现了 GCKDeviceScannerListener 单例类,但是即使 Logger 显示可用于连接状态代码 1 的 Cast Device 消息,也不会调用其委托方法。

GCKDeviceScannerListener 的 deviceDidComeOnline 方法没有被调用。

谁能帮忙

class ViewController: UIViewController, GCKDeviceScannerListener, GCKDeviceManagerDelegate, GCKMediaControlChannelDelegate {

    private var deviceScanner: GCKDeviceScanner!
    private var selectedDevice:GCKDevice!
    private var deviceManager:GCKDeviceManager!
    private var mediaInformation:GCKMediaInformation!
    private var kReceiverAppID = kGCKMediaDefaultReceiverApplicationID

     override func viewDidLoad() {
    
        super.viewDidLoad()
        self.startScan()
    
    }

     func startScan() {
    
        let filterCriteria = GCKFilterCriteria(forAvailableApplicationWithID: kReceiverAppID)
        self.deviceScanner = GCKDeviceScanner(filterCriteria: filterCriteria)
        if let deviceScanner = self.deviceScanner {
            deviceScanner.addListener(self)
            deviceScanner.startScan()
            print("scanning started")
            deviceScanner.passiveScan = true
        }
    }


    // MARK: GCKDeviceScannerListener

    func deviceDidComeOnline(device: GCKDevice!) {
        print("deviceDidComeOnline()")
        print("Device found: \(device.friendlyName)");
        self.updateButtonStates()

    }

    func deviceDidGoOffline(device: GCKDevice!) {
        print("deviceDidGoOffline()")
        print("Device went away: \(device.friendlyName)");
        self.updateButtonStates()

    }

    func deviceDidChange(device: GCKDevice!) {
        print("deviceDidChange()");
    }
}

【问题讨论】:

  • 我还没有处理过 Swift,但看起来监听器只添加在 if 条件内 - 这可能是您的问题的原因。尝试从那里删除它,希望它会起作用,您的 sn-p 类似于 iOS Cast 文档中的示例。
  • 您的代码看起来不错。我已经实现了一些非常相似的东西并且我的作品。愚蠢的问题,但是,你确定你和 chromecast 设备在同一个网络上吗?
  • 是的,当然我在同一个网络好友:P

标签: ios swift chromecast


【解决方案1】:

输入您在Google Cast Registration 注册应用后收到的 ID 我刚刚使用了您的代码,并且效果很好。 不要使用默认 ID。它不会工作,即

kGCKMediaDefaultReceiverApplicationID

let filterCriteria = GCKFilterCriteria(forAvailableApplicationWithID: kReceiverAppID)

代替它,输入ID以传入过滤条件并像这样实现它。

let chromecastID = "ABC123" // Enter the correct ID here 
let filterCriteria = GCKFilterCriteria(forAvailableApplicationWithID: chromecastID)

【讨论】:

    猜你喜欢
    • 2014-07-21
    • 1970-01-01
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-12
    • 2020-01-05
    • 2012-12-09
    相关资源
    最近更新 更多