【问题标题】:Chromecast cannot receive custom messages (CAF Receiver)Chromecast 无法接收自定义消息(CAF 接收器)
【发布时间】:2019-01-03 19:22:12
【问题描述】:

我正在为 Google Cast SDK 使用 react 本机包装器,但我无法将消息从发送方发送到接收方。我可以投射媒体或暂停并恢复它。问题仅与自定义消息有关。我的自定义消息侦听器永远不会在接收方调用。消息是否应该具有我缺少的特定结构?提前致谢。

发件人:

  GoogleCast.initChannel('urn:x-cast:testChannel');

  GoogleCast.sendMessage('urn:x-cast:testChannel', 'testMessage');

接收者:

const context = cast.framework.CastReceiverContext.getInstance();
const CUSTOM_CHANNEL = 'urn:x-cast:testChannel';
context.addCustomMessageListener(CUSTOM_CHANNEL, function(customEvent) {
    // handle customEvent.
    console.log('event received');
});

编辑:我能够将消息从接收者发送到发送者:

接收者:

context.sendCustomMessage(CUSTOM_CHANNEL , undefined,  'myMessage');

发件人:

GoogleCast.EventEmitter.addListener(GoogleCast.CHANNEL_MESSAGE_RECEIVED, ({undefined, message}) => {
  console.log(message);
}); 

【问题讨论】:

标签: chromecast google-cast google-cast-sdk caf-receiver-sdk


【解决方案1】:

我认为这是下面的问题

https://issuetracker.google.com/issues/117136854#comment7

所以试试这个...

发送

let message = {msg: 'testMessage'};
message = JSON.stringify(message);

GoogleCast.sendMessage('urn:x-cast:testChannel', message);

和接收者

  const CHANNEL = 'urn:x-cast:testChannel';
  const ctx = cast.framework.CastReceiverContext.getInstance();
  const options = new cast.framework.CastReceiverOptions();
  const objToSender = 
  {
    type: 'status',
    message: 'Playing'
  };

  options.customNamespaces = Object.assign({});
  options.customNamespaces[CHANNEL] = cast.framework.system.MessageType.JSON;

  //receiving sender message
  ctx.addCustomMessageListener(CHANNEL,  customEvent => document.getElementById("main").innerHTML = customEvent.data.msg);

  //message to sender app
  ctx.sendCustomMessage(CHANNEL, objToSender);

  ctx.start(options);

【讨论】:

    猜你喜欢
    • 2018-08-07
    • 2020-06-02
    • 2015-08-22
    • 2020-05-03
    • 2014-10-04
    • 2014-12-25
    • 1970-01-01
    • 2014-03-10
    相关资源
    最近更新 更多