Невозможно отправить сообщение json из приложения Android в приложение-приемник chromecast

Не удается отправить сообщение json из моего приложения для Android в приложение-приемник.

Приложение для Android

  • Я создал свой собственный MessageStream и использую это пространство имен «com.jujuy.chromecast».
  • Как только я получаю канал из сеанса, я присоединяю к нему MyCustomMessageStream и вызываю метод для отправки сообщения.

    MyCustomMessageStream cm = new MyCustomMessageStream(); канал.attachMessageStream(см);

    cm.sendTestMessage("Привет!");

Приложение-получатель

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, что они используют другой способ получения объекта CastDevice, чем указано в документации. Может в этом проблема?

Мой chromecast занесен в белый список, и я смог запустить множество примеров без проблем.

Я использовал пользовательское приложение-приемник для тестирования воспроизведения видео и аудио. Есть идеи?


person rushmore    schedule 31.08.2013    source источник
comment
В конструкторе для вашего класса MyCustomMessageStream вы вызывали super("com.jujuy.chromecast");, чтобы задать пространство имен для суперкласса MessageStream?   -  person anthonylawson    schedule 31.10.2013


Ответы (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

Сначала я не мог заставить мое пространство имен пакета работать, вы можете попробовать пространство имен из одного слова, например «ТЕСТ», чтобы увидеть, сможете ли вы заставить это работать, а затем продолжить оттуда.

person Nathan Jones    schedule 05.11.2013