在 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 - 是不是可以在会话请求中传递自定义数据?