ios - ChromeCast后台视频播放支持iOS

标签 ios objective-c google-cast chromecast

我有一个问题,当我的应用程序进入后台时,chromecast iOS api 的 GCKSocket 关闭,我从 api 得到了这个错误类型

-[GCKCastSocket socketDidDisconnect:withError:]  socketDidDisconnect:withError: "(null)"

然后如果我将应用程序置于前台,api 会自动创建套接字并将播放状态设置为暂停。如果我现在尝试再次播放视频,它会正常播放。

我正在像这样在后台线程上开始播放媒体。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND,
                                             0), ^ {
[[CastViewController instance] castMedia:self.media];      

});

如何在应用程序进入后台时保持播放?

这是来自 api 的日志记录

2014-02-25 17:19:01.388 CastVideos[28470:60b] -[GCKCastSocket disconnect] disconnect

2014-02-25 17:19:01.391 CastVideos[28470:60b] -[GCKCastSocket doTeardownWithError:] doTeardownWithError

2014-02-25 17:19:01.395 CastVideos[28470:60b] -[GCKCastSocket doTeardownWithError:] notifying delegate that socket is disconnected

2014-02-25 17:19:01.399 CastVideos[28470:60b] -[GCKHeartbeatChannel didDisconnect] disconnected - stopping heartbeat timer if necessary

2014-02-25 17:19:01.457 CastVideos[28470:60b] -[GCKCastSocket socketDidDisconnect:withError:] socketDidDisconnect:withError: "(null)"

最佳答案

目前,当您进入后台时,Cast iOS SDK 会关闭套接字,目前这不是可配置的项目。但是,这并不意味着 Cast 设备上的媒体播放应该停止;事实上正确的行为如下:

  • 如果用户明确将自己与转换设备断开连接,并且如果她是接收方最后连接的设备,则接收方应停止播放,否则接收方应继续播放。

这里的关键是“显式”部分;例如,如果发送方超出 wifi 范围并断开连接,或者如果发送方进入休眠状态并断开连接,这些都被视为“隐式”断开连接,不应导致接收方停止。

换句话说,实际上是接收器应该有逻辑来决定它是否必须停止自己或继续播放,并且为了让它起作用,它必须能够决定设备断开连接是隐式还是明确地。在当前的接收器 SDK API 中,不幸的是,它没有包含在接收器获取的 onSenderDisconnected 事件中;在接收器的下一次左右更新中,它会发生变化,以便接收器可以看到为什么会发生断开连接,至少需要区分显式和隐式断开连接。然后它可以实现逻辑。同时,发送方需要有一个带外 channel 来发送消息,表明其明确的意图。

更新:Receiver SDK 已更新,包含可以判断发送方是隐式还是显式断开连接的信息,请参阅 docs .

关于ios - ChromeCast后台视频播放支持iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22011821/

相关文章:

ios - 转换运行时属性大小、点、矩形

ios - 在 swift 中出现奇怪的线程 1 : EXC_BAD_ACCESS (code=1, 地址 = 0x9) 崩溃错误

ios - 设置 imageview 角半径

ios - 如何将字典值放入数组?

ios - 如何剥离 Google cast 未使用的 archs iOS | strip_unused_archs.sh

ios - 如何让 Chrome Cast 在 iOS 后台运行?

iOS Dynamic Framework for Carthage 和 Cocoa pods 依赖于其他框架

iphone - 使用字典数组中的数据填充 Tapku 日历

ios - Adcolony 委托(delegate)没有被调用

android - 从我的 Android 应用打开 Chromecast YouTube 视频