使用Chromecast接收器API V2将消息从发件人发送到自定义接收器

时间:2014-04-29 16:16:34

标签: chromecast google-cast

我的答案看起来很高很低,我似乎无法找到任何内容,Google's Docs似乎不完整,因为发送给自定义接收器的邮件问题。

StackOverflow上的先前答案似乎只是使用了V1接收器API,它似乎不适用于V2 API。

有人能指出我正确的方向,只是解释如何使用V2 API从Chrome发件人应用程序向接收者发送消息吗?

2 个答案:

答案 0 :(得分:16)

在发件人方面,您可以通过会话侦听器中获得的会话对象发送消息:

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

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

在接收方,您可以创建消息总线并侦听传入的消息:

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

您可以自己定义namespace,但在发件人和收件人中必须相同,并以urn:x-cast:

开头

为您要发送的信息定义正确的消息类型非常重要,但JSON可能是最通用的。

您还可以使用消息总线将消息发送回发件人:

messageBus.send(senderId, message);

在发件人方面有一个监听器:

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

});

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

我还在Github上提供了一个非常简单的Chrome Sender / Custom Receiver样本,其中包含完整的发送消息的实现: https://github.com/Scarygami/chromecast_experiments/tree/master/photocast

答案 1 :(得分:0)

作为@scarygami答案的更新,如果您需要对CAF(API v3)进行同样的操作,这就是在接收方监听消息的方式

const context = cast.framework.CastReceiverContext.getInstance();
context.addCustomMessageListener('urn:x-cast:<your-namespace>', event => {
    console.log('CustomMessage: ', event);
});

在这里您可以找到文档: https://developers.google.com/cast/docs/reference/caf_receiver/cast.framework.CastReceiverContext#addCustomMessageListener