【发布时间】: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