2014-04-29 10 views
5

Ho cercato un messaggio di risposta alto e basso e non riesco a trovare nulla, Google's Docs sembra incompleto per l'invio di messaggi a un destinatario personalizzato.Invio di messaggi dal mittente al destinatario personalizzato con l'API del ricevitore Chromecast V2

Anche le risposte precedenti su StackOverflow sembrano utilizzare solo l'API V1 Receiver che non sembra funzionare con l'API V2.

Qualcuno potrebbe indicarmi la giusta direzione per spiegare semplicemente come inviare un messaggio da un'app Chrome Sender a un ricevitore utilizzando l'API V2?

risposta

15

Sul lato del mittente è possibile inviare messaggi tramite l'oggetto sessione che si ottiene in chi ascolta sessione:

session.sendMessage(namespace, message, onSuccess, onFailure); 

https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Session#sendMessage

Sul lato del ricevitore si crea un autobus messaggio e ascoltare i messaggi in arrivo:

messageBus = castReceiverManager.getCastMessageBus(
    namespace, 
    cast.receiver.CastMessageBus.MessageType.JSON 
); 

messageBus.onMessage = function(event) { 
    var sender = event.senderId; 
    var message = event.data; 
}; 

https://developers.google.com/cast/docs/reference/receiver/cast.receiver.CastReceiverManager#getCastMessageBus https://developers.google.com/cast/docs/reference/receiver/cast.receiver.CastMessageBus

È possibile definire il namespace te stesso, ma deve essere lo stesso in mittente e destinatario e iniziare con urn:x-cast:

ed è importante per definire il tipo di messaggio corretto per le informazioni che si sta per inviare, ma JSON è probabilmente il più versatile.

È inoltre possibile utilizzare il bus messaggio per inviare messaggi al mittente:

messageBus.send(senderId, message); 

con un listener sul lato mittente:

session.addMessageListener(namespace, function (ns, message) { 

}); 

https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Session#addMessageListener

Ho anche un molto semplice Chrome Sender/Custom Receiver campione su Github con un'implementazione completa dei messaggi di invio: https://github.com/Scarygami/chromecast_experiments/tree/master/photocast

+1

Grazie amico! : D Potrebbe abbracciarti adesso. – 2xAA

+0

@Scarygami, potresti spiegare come caricare correttamente il ricevitore personalizzato sul Chromecast. È sufficiente solo inserire il collegamento diretto al file .js in Cast Console? – AnZ

+2

Continuo a ricevere un errore invalid_parameter Spazio dei nomi non valido quando chiamo session.sendMessage(), @Scarygami sapresti perché? – Capaj

Problemi correlati