无法第二次调用GCKRemoteMediaClientListener

时间:2018-04-02 08:35:59

标签: ios swift google-cast google-cast-sdk

我使用googlecast sdk iOS 4.0.2版本在相同的wifi网络下找到可投射设备,iOS版本为10.0或以上。

我创建了一个单例,并将侦听器注册到它,这在第一次找到设备时成功调用。 之后就再也不能打电话了。

因为我不需要自动启动它,所以下面是我的代码来初始化castcontext。

    let criteria = GCKDiscoveryCriteria.init(applicationID: kGoogleCastApplicationID)
    let options = GCKCastOptions.init(discoveryCriteria: criteria)
    options.disableDiscoveryAutostart = false
    options.stopReceiverApplicationWhenEndingSession = true
    GCKCastContext.setSharedInstanceWith(

我将其设置为false,因为sdk中的以下提交。

/** * A flag indicating whether the discovery of Cast devices should start automatically at * context initialization time. If set to <code>NO</code>, discovery can be started and stopped * on-demand by using the methods GCKDiscoveryManager::startDiscovery and * GCKDiscoveryManager::stopDiscovery. * * @since 3.4 */

这是我如何开始和停止它。

启动

    func startDiscovery() {
        if !discoveryManager.discoveryActive {
            registerDiscover()
            discoveryManager.startDiscovery()
        }
    }

停止

    func stopDiscovery() {
        if discoveryManager.discoveryActive {
            removeDicover()
            discoveryManager.stopDiscovery()
        }
    }

还有一个奇怪的事情是,在应用程序在前台和后台之间切换时,在控制台上看到TIC Read Status [5:0x0]: 1:57,现在我的委托被调用了。无论如何,这没有任何帮助。

任何人都可以帮我正确地使用googlecast sdk来手动启动和停止它。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我终于解决了这个问题。 上面的代码是正确的,SDK中的注释没有错,但如果指出再次开始发现时,我们将不会收到我们之前发现的设备的通知,这意味着我们需要一个容器来保存设备我们手动控制它。