【问题标题】:Chromecast not receiving messages over CastMessageBusChromecast 未通过 CastMessageBus 接收消息
【发布时间】:2017-08-30 20:43:30
【问题描述】:

我正在尝试在我的 接收器应用程序。我正在使用 CastReferencePlayer Sample 我可以在启动时初始化频道,并且 收到一条消息。

但媒体播放后,我无法接收 在频道上使用相同的send 方法的任何其他消息 发件人。我的发件人是iOS Device

最好在哪里初始化消息总线以确保通道 在应用程序的整个生命周期内都可以接收消息吗?

我目前正在启动频道 在sampleplayer.CastPlayer.prototype.start = function()。但我不确定这是否是启动消息总线的正确位置,因为我只在启动时收到一次消息(即在媒体开始播放之前)。

sampleplayer.CastPlayer.prototype.start = function() {
      var messageBus = this.receiverManager_.getCastMessageBus(
          "urn:x-cast:com.myTestChannel.app",
          cast.receiver.CastMessageBus.MessageType.JSON);
    
      messageBus.onMessage = function(event) {
            var message = event.data;
            if (message.testID) {
              console.log("Message received");
            } else if (message.someKey) {
              console.log("pause message received");
            }
          };
          this.receiverManager_.start();
        };

我试图将频道创建代码放在我的player.js 内的window.onload 函数中,但这与以前的反应相同(即仅初始消息)。

有人知道我应该将代码放在哪里来初始化频道吗? 任何帮助,将不胜感激。

编辑:我做了更多调查,发现只是我的 iOS 发送方不会向接收方发送多条消息。我已经尝试过 android 和 chrome 并且多个消息都可以工作。 有谁知道从 iOS 发件人发送消息的问题。

【问题讨论】:

  • 正如SO post 所提到的,您需要创建一个GCKCastChannel 实例(用于您的命名空间),并使用sendTextMessage
  • @abielita,感谢您的链接。我已经在正确的命名空间上创建了演员频道。我解决了我的问题。在我的实现中,我对演员频道的引用在我第一次使用后被销毁了。

标签: javascript ios chromecast google-cast


【解决方案1】:

我的代码有问题出在我的发件人身上。

sendTextMessage 方法在第一个实例之后没有触发,因为我对强制转换通道的引用被破坏了。

【讨论】:

    猜你喜欢
    • 2017-09-02
    • 2012-01-05
    • 2019-01-03
    • 2020-08-13
    • 1970-01-01
    • 2023-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多