Chromecast API 未调用 sessionListener() 回调

Posted

技术标签:

【中文标题】Chromecast API 未调用 sessionListener() 回调【英文标题】:Chromecast API not calling sessionListener() call back 【发布时间】:2016-06-30 17:38:59 【问题描述】:

我正在构建 Chromecast Sender 应用程序,并且可以成功投射会话。但是我只能施放一次。当我断开我的 sessionListener 回调永远不会触发,这是有问题的,因为这是我设置我的 sessionUpdate 监听器的地方。否则,无法判断会话何时结束以重置会话并进行任何清理,这意味着我无法重铸任何内容,因为我无法知道会话是否有效。

据我所知,问题出在cast_sender.js 中,它被方便地混淆了,所以我可能是错的。

我正在按如下方式设置我的 ApiConfig:

 apiConfig = new _chrome.cast.ApiConfig(
   sessionRequest,
   _sessionListener.bind(this),
   _receiverListener.bind(this));

_receiverListener 按预期触发,我已将cast_sender.js 调试到可以看到我的函数_sessionListener 被传入并在cast_sender.js 的第837 行正确设置的地步,这里:

835 chrome.cast.dd = function(a, c, d, e, f) 
836   this.sessionRequest = a;
837   this.sessionListener = c;
838   this.receiverListener = d;
839   this.autoJoinPolicy = e || chrome.cast.Fb.TAB_AND_ORIGIN_SCOPED;
840   this.defaultActionPolicy = f || chrome.cast.Jb.CREATE_SESSION;
841   this.customDialLaunchCallback = null;
842 ;

该函数似乎是在第 #2441 行调用的,此处:

2440 b.Wf = function(a) 
2441  this.B && this.B.sessionListener(a.message);
2442 ;

我在那里设置了一个断点,它永远不会被调用。在这一点上,我陷入了僵局,有什么想法吗?

【问题讨论】:

你能在也使用 SessionListener 的 CastVideos-chrome-material (github.com/googlecast/CastVideos-chrome-material) 中重现这个吗? 我实际上认为我已经解决了这个问题。我根据 github 中的 CastHelloText-chrome 示例设置了我的发件人,这似乎错误地设置了会话。我将在今天晚些时候提交我的修复请求。 @AliNaddaf github.com/googlecast/CastHelloText-chrome/pull/14 【参考方案1】:

我在传递给我在此处复制/粘贴的示例代码https://github.com/googlecast/CastHelloText-chrome/blob/master/chromehellotext.html#L162 的cast.requestSession() 函数的回调中找到了问题的根源https://github.com/googlecast/CastHelloText-chrome/blob/master/chromehellotext.html#L162

我已经提交了一个修复请求以解决https://github.com/googlecast/CastHelloText-chrome/pull/14 此处的问题,但我怀疑它会被拉进来,因为看起来他们的 PR 排在队列中已经好几年没有解决了。

【讨论】:

以上是关于Chromecast API 未调用 sessionListener() 回调的主要内容,如果未能解决你的问题,请参考以下文章

Chromecast 应用程序未在 Chromecast 的应用程序页面中列出

在某些 Android 设备上未发现 Chromecast 设备

本地 Chromecast 接收器未加载

Chromecast 示例项目未在电视上投射

Chromecast API 发件人 - Android 手机

Chromecast 上的 YouTube iframe api 行为