Chromecast не может получать пользовательские сообщения (CAF Receiver)
Я работаю со встроенной программой-оберткой для Google Cast SDK и не могу отправить сообщение от отправителя получателю. Я могу разыграть медиа или приостановить и возобновить его. Проблема только в пользовательских сообщениях. Мой пользовательский прослушиватель сообщений никогда не вызывается на стороне получателя. Должно ли сообщение иметь конкретную структуру, которую мне не хватает? Заранее спасибо.
Отправитель:
GoogleCast.initChannel('urn:x-cast:testChannel');
GoogleCast.sendMessage('urn:x-cast:testChannel', 'testMessage');
Получатель:
const context = cast.framework.CastReceiverContext.getInstance();
const CUSTOM_CHANNEL = 'urn:x-cast:testChannel';
context.addCustomMessageListener(CUSTOM_CHANNEL, function(customEvent) {
// handle customEvent.
console.log('event received');
});
Изменить: Я могу отправить сообщение от получателя отправителю:
Получатель:
context.sendCustomMessage(CUSTOM_CHANNEL , undefined, 'myMessage');
Отправитель:
GoogleCast.EventEmitter.addListener(GoogleCast.CHANNEL_MESSAGE_RECEIVED, ({undefined, message}) => {
console.log(message);
});
0 ответов
Я думаю, это проблема ниже
https://issuetracker.google.com/issues/117136854
Так что попробуйте это...
послать
let message = {msg: 'testMessage'};
message = JSON.stringify(message);
GoogleCast.sendMessage('urn:x-cast:testChannel', message);
и получатель
const CHANNEL = 'urn:x-cast:testChannel';
const ctx = cast.framework.CastReceiverContext.getInstance();
const options = new cast.framework.CastReceiverOptions();
const objToSender =
{
type: 'status',
message: 'Playing'
};
options.customNamespaces = Object.assign({});
options.customNamespaces[CHANNEL] = cast.framework.system.MessageType.JSON;
//receiving sender message
ctx.addCustomMessageListener(CHANNEL, customEvent => document.getElementById("main").innerHTML = customEvent.data.msg);
//message to sender app
ctx.sendCustomMessage(CHANNEL, objToSender);
ctx.start(options);