在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()");
}
}
答案 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)