无法从Android应用程序向chromecast接收器应用程序发送json消息

时间:2013-08-31 02:41:36

标签: chromecast

无法从我的Android应用程序向接收器应用程序发送json消息。

Android应用

  • 我已创建自定义MessageStream,并且我正在使用此命名空间“com.jujuy.chromecast”。
  • 从会话中获取频道后,我将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已列入白名单,我可以毫无问题地运行多个示例。

我使用自定义接收器应用来测试播放视频和音频。有什么想法吗?

1 个答案:

答案 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',看看你是否可以从那里继续工作。