ios - 无法第二次调用 GCKRemoteMediaClientListener

标签 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 来手动启动和停止它。

提前致谢。

最佳答案

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

关于ios - 无法第二次调用 GCKRemoteMediaClientListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49607939/

相关文章:

ios - ProfileChangeRequest 未触发时的 Firebase commitChangesWithCompletion

ios - 是否可以用 chromecast 做 uiwebview 的镜像?

android - Google Cast 按钮未在 Android 中显示

ios - 将应用程序的可见内容转换到 Chromecast

ios - Xcode Firebase 崩溃报告权限被拒绝

ios - 如何设置每次重复不同内容的每日通知?

ios - 在 iOS 中获取字符串中空格后的字符

ios - Swiftui Pan Gesture 获取 View 的水平位置

swift - 如何从 0.0.0.0 :8181 in Perfect 2. 0 更改服务器访问的 IP?

swift - 如何消除 "variable not used"警告并保持强引用?