【问题标题】:Sending messages from Sender to Custom Receiver with Chromecast receiver API V2使用 Chromecast 接收器 API V2 将消息从 Sender 发送到 Custom Receiver
【发布时间】:2014-06-15 16:58:25
【问题描述】:

我一直在寻找答案,但我似乎找不到任何东西,Google's Docs 似乎对将消息发送到自定义接收器的问题不完整。

以前关于 StackOverflow 的答案似乎只使用 V1 Receiver API,而这似乎不适用于 V2 API。

谁能指出我正确的方向来简单地解释如何使用 V2 API 将消息从 Chrome Sender 应用程序发送到 Receiver?

【问题讨论】:

    标签: chromecast google-cast


    【解决方案1】:

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

    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);
    

    在 Sender 端有一个监听器:

    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

    【讨论】:

    • @Scarygami,您能否解释一下如何将自定义接收器正确上传到 Chromecast。仅在 Cast Console 中放置指向 .js 文件的直接链接就足够了吗?
    • 我在调用 session.sendMessage() 时不断收到错误 invalid_parameter Invalid namespace,@Scarygami 你知道为什么吗?
    • @Capaj 你用的是什么命名空间?
    【解决方案2】:

    作为@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

    【讨论】:

    • 您如何从此次活动中获得senderId?
    猜你喜欢
    • 2015-07-28
    • 2013-08-04
    • 2013-09-03
    • 1970-01-01
    • 2013-08-27
    • 2014-02-23
    • 1970-01-01
    • 2019-08-29
    • 1970-01-01
    相关资源
    最近更新 更多