无法从我的Android应用程序向接收器应用程序发送json消息。
Android应用
从会话中获取频道后,我将MyCustomMessageStream附加到该频道,然后调用该方法发送消息。
MyCustomMessageStream cm = new MyCustomMessageStream(); channel.attachMessageStream(厘米);
cm.sendTestMessage( “你好!”);
Receiver App
var receiver = new cast.receiver.Receiver(
APP-ID,
["com.jujuy.chromecast"],
"",
5);
var channelHandler = new cast.receiver.ChannelHandler("com.jujuy.chromecast"); // I think it's not necessary to use com.jujuy.chromecast
channelHandler.addEventListener(cast.receiver.Channel.EventType.MESSAGE, onMessage.bind(this));
channelHandler.addChannelFactory(receiver.createChannelFactory("com.jujuy.chromecast"));
receiver.start();
// message listener
function onMessage(event) {
document.getElementById("messageLabel").innerHTML = event.message.type;
}
启动会话()后,我收到此消息 “未能启动申请:未收到任何频道信息” 在onSessionStartFailed()方法上,电视屏幕变黑。
我认为世界“com.jujuy.chromecast”有问题,我在其他示例中看到他们使用cast.receiver.RemoteMedia.NAMESPACE,我不确定我是否可以使用MyCustomMessageStream中使用的命名空间来更改它
我在TicTacToe示例中看到,他们使用不同的方式获取de CastDevice对象,而不是文档说明。这可能是问题吗?
我的chromecast已列入白名单,我可以毫无问题地运行多个示例。
我使用自定义接收器应用来测试播放视频和音频。有什么想法吗?
答案 0 :(得分:1)
这很可能是因为发件人上的命名空间与接收者上的命名空间不匹配。您需要确保将其作为参数传递给自定义MessageStream的构造函数。
以下是一个例子:
public class MyCustomMessageStream extends MessageStream {
private static final String APP_NAMESPACE = "com.jujuy.chromecast";
protected MyCustomMessageStream(){
super(APP_NAMESPACE);
}
public final void sendTestMessage(String message){
// ...
}
//...
}
您不需要使用远程媒体名称空间来发送媒体播放的消息。这是一个更深入的答案:https://stackoverflow.com/a/18499253/1839298
起初我无法使我的包命名空间工作,你可能会尝试使用单个命名空间命名空间,比如'TEST',看看你是否可以从那里继续工作。