在 iOS 上监听 Google Cast 会话事件

Posted

技术标签:

【中文标题】在 iOS 上监听 Google Cast 会话事件【英文标题】:Listen for Google Cast Session Events on iOS 【发布时间】:2016-10-25 15:48:57 【问题描述】:

我正在使用来自 ios 的 Google Cast SDK。我能够正确地投射我的应用程序,但我无法让<GCKSessionManagerListener> Protocol 正常工作。根据 GCKSessionManager 文档,我应该能够绑定侦听器并定义我关心的回调,但它们似乎没有被调用:

我初始化并绑定监听器(在主应用线程上):

GCKCastOptions *options =
    [[GCKCastOptions alloc] initWithReceiverApplicationID:@"ABCDEFGH"];
[GCKCastContext setSharedInstanceWithOptions:options];

GCKSessionManager *sessionManager =
    [GCKCastContext sharedInstance].sessionManager;
[sessionManager addListener:self];

然后我定义了(在同一个文件中):

#pragma mark - GCKSessionManagerListener

- (void)sessionManager:(GCKSessionManager *)sessionManager
    didStartSession:(GCKSession *)session 
  RCTLogInfo(@"EVENT didStartSession");

我也尝试过 didStartCastSession 变体,但没有任何运气。

在我的头文件中,我也包含了接口:

@interface MyGoogleCast : NSObject <RCTBridgeModule, GCKSessionManagerListener>

我错过了什么?

【问题讨论】:

检查GCKCastContext 是否不为零。这是唯一的选择。 GCKCastContext sharedInstance 如果为 nil,则会引发异常。 您看过 Cast iOS 示例了吗:github.com/googlecast/CastVideos-ios initWithReceiverApplicationID 在应用委托中完成,会话管理器 addListener 在视图控制器 viewDidLoad 中完成。 是的。我已经尝试将 init 移动到应用程序委托并将 addListener 移动到最后可能的时刻(在我加载媒体时的视图中)。没有变化。 @Levi 你让它工作了吗?我有完全相同的问题。 【参考方案1】:

我可以通过将 addListener 调用推迟到应用生命周期的后期来解决类似的问题。

【讨论】:

以上是关于在 iOS 上监听 Google Cast 会话事件的主要内容,如果未能解决你的问题,请参考以下文章

Google Cast API - 是不是可以在会话请求中传递自定义数据?

iPhone 4 上的 Google Cast iOS API?

连接后如何在 Google Cast 上显示信息

深入理解Google Cast基本概念

深入理解Google Cast基本概念

在 Google Cast SDK 开发者控制台中注册 Android TV