2016-06-30 6 views
0

Ich erstelle eine Chromecast-Absenderanwendung und kann erfolgreich eine Sitzung übertragen. Allerdings kann ich nur einmal casten. Wenn ich den sessionListener-Rückruf abbringe, wird der Callback nie ausgelöst, was problematisch ist, da ich dort meinen sessionUpdate Listener gesetzt habe. Ohne dass es nicht möglich ist, zu sagen, wann eine Sitzung endet, um die Sitzung zurückzusetzen und aufzuräumen, was bedeutet, dass ich nichts neu formulieren kann, weil ich nicht weiß, ob eine Sitzung gültig ist oder nicht.Chromecast-API ruft nicht auf sessionListener() ruft zurück

Soweit ich feststellen kann, das Problem ist in cast_sender.js, die bequem verschleiert ist, so könnte ich falsch liegen.

Ich gründe meine ApiConfig sich wie folgt zusammen:

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

_receiverListener abgefeuert wird, wie erwartet, und ich habe cast_sender.js auf den Punkt debuggt, wo ich meine Funktion _sessionListener wird eingeleitet und richtig eingestellt auf Linie # sehen 837 von cast_sender.js, hier:

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

die Funktion auf der Linie # 2441, hier genannt zu werden scheint:

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

Ich habe dort einen Haltepunkt gesetzt und es wird nie aufgerufen. An diesem Punkt bin ich in eine Sackgasse geraten, irgendwelche Gedanken?

+0

Können Sie dies in CastVideos-Chrome-Material (https://github.com/googlecast/CastVideos-chrome-material) reproduzieren, die den SessionListener auch verwendet? –

+0

Ich glaube eigentlich, ich habe das Problem gelöst. Ich habe meinen Sender basierend auf dem CastHelloText-chrome-Beispiel in GitHub eingerichtet, das die Sitzung scheinbar falsch setzt. Ich werde heute eine Pull-Anfrage für meinen Fix einreichen. –

+0

@AliNaddaf https://github.com/googlecast/CastHelloText-chrome/pull/14 –

Antwort

0

fand ich die Ursache des Problems in den Rückruf an die cast.requestSession() Funktion des Beispiel-Code übergeben ich Kopieren/Einfügen hier https://github.com/googlecast/CastHelloText-chrome/blob/master/chromehellotext.html#L162

ich eine Pull-Anforderung für eine Korrektur eingereicht haben, die das Problem hier https://github.com/googlecast/CastHelloText-chrome/pull/14 löst aber Ich bezweifle, dass es in Betracht gezogen wird, wenn man bedenkt, dass es so aussieht, als ob PRs mehrere Jahre unadressiert in der Warteschlange sitzen.