【发布时间】: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