GoogleCast deviceDidComeOnline(设备:GCKDevice!)永远不会被称为#GoogleCastSDK

时间:2016-03-21 12:54:11

标签: ios swift chromecast

  

在ViewController上实现 GCKDeviceScannerListener Singleton类,但即使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()");
    }
}

1 个答案:

答案 0 :(得分:0)

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)