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

2xA*_*xAA 7 google-cast chromecast

我看起来很高和很低的答案,我似乎找不到任何东西,谷歌的文件似乎不完整的消息发送到自定义接收器.

此前,StackOverflow上的答案似乎只是使用V1 Receiver API,它似乎不适用于V2 API.

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

Sca*_*ami 19

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

session.sendMessage(namespace, message, onSuccess, onFailure);
Run Code Online (Sandbox Code Playgroud)

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;
};
Run Code Online (Sandbox Code Playgroud)

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:

为您要发送的信息定义正确的Message类型很重要,但JSON可能是最通用的.

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

messageBus.send(senderId, message);
Run Code Online (Sandbox Code Playgroud)

在发件人方面有一个听众:

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

});
Run Code Online (Sandbox Code Playgroud)

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

  • 当我调用session.sendMessage()时,我一直收到错误invalid_parameter无效的命名空间,@ Scarygami你知道为什么吗? (2认同)