2017-04-05 4 views
0

J'essaie d'initialiser le bus de messages cast sur mon application de récepteur . J'utilise le CastReferencePlayer Sample (https://github.com/googlecast/CastReferencePlayer) Je suis en mesure d'initialiser la chaîne au lancement, et recevoir un message.Le Chromecast ne reçoit pas de messages sur CastMessageBus

Mais après que les médias joue, je ne suis pas en mesure de recevoir des messages supplémentaires sur le canal en utilisant les mêmes méthodes send sur l'expéditeur. Mon expéditeur est un iOS Device

Où est le meilleur endroit pour initer le bus de messages pour s'assurer que le canal est ouvert pour recevoir des messages tout au long de la vie de l'application? Je démarre actuellement le canal dans sampleplayer.CastPlayer.prototype.start = function(). Mais je ne suis pas sûr si c'est le bon endroit pour démarrer le bus de messages car je ne reçois le message qu'une seule fois au démarrage (c'est-à-dire avant que le média ne commence à jouer).

sampleplayer.CastPlayer.prototype.start = function() { 
 
     var messageBus = this.receiverManager_.getCastMessageBus(
 
      "urn:x-cast:com.myTestChannel.app", 
 
      cast.receiver.CastMessageBus.MessageType.JSON); 
 
    
 
     messageBus.onMessage = function(event) { 
 
      var message = event.data; 
 
      if (message.testID) { 
 
       console.log("Message received"); 
 
      } else if (message.someKey) { 
 
       console.log("pause message received"); 
 
      } 
 
      }; 
 
      this.receiverManager_.start(); 
 
     };

J'ai essayé de placer le code de création de canal dans une fonction window.onload dans mon player.js mais réagit le même que précédemment (ce message initial uniquement).

Quelqu'un at-il une idée de l'endroit où je devrais placer le code pour initer le canal? Toute aide serait appréciée.

EDIT: je l'ai fait un peu plus enquête et a découvert qu'il est juste mon expéditeur iOS qui ne sera pas envoyer plusieurs messages au récepteur. J'ai essayé à la fois android et chrome et plusieurs messages fonctionnent. Est-ce que quelqu'un est au courant des problèmes avec l'envoi de messages à partir d'un expéditeur iOS.

+0

Comme fait référence avec ce [post SO] (http://stackoverflow.com/questions/39766944/sending-a-json-from-ios-sender-to-receiver-app-with-the-googlecast-sdk- v3), vous devez créer une instance ['GCKCastChannel'] (https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_cast_channel#a536d42cdfb9d56d9ed10c3f75c493985) (pour votre espace de noms), et utiliser [' sendTextMessage'] (https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_cast_channel#a536d42cdfb9d56d9ed10c3f75c493985). – abielita

+0

@abielita, merci pour le lien. Je créais déjà le canal de distribution sur l'espace de noms correct. J'ai résolu mon problème cependant. Dans ma mise en œuvre, ma référence au canal de distribution était détruite après l'avoir utilisée la première fois. – mhorgan

Répondre

0

Le problème avec mon code était dans mon expéditeur.

La méthode sendTextMessage ne tirait pas après la première instance en raison de ma référence au canal de distribution en cours de destruction.