Chromecast API没有调用sessionListener()回调

时间:2016-06-30 17:38:59

标签: chromecast google-cast

我正在构建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被传入并在{{1}的#837行上正确设置},这里:

cast_sender.js

该功能似乎在第2441行调用,此处:

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 };

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

1 个答案:

答案 0 :(得分:0)

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

我已经提交了一个解决问题的拉取请求,解决了这里的问题https://github.com/googlecast/CastHelloText-chrome/pull/14但是我怀疑它会被考虑到看起来他们有几年没有问题的PR队列。