Связь Chromecast с отправителем и получателем

Согласно документации Google Custom Receiver, если наше приложение выполняет аутентификацию, мы можем загрузить customData в формате json в наше приложение отправителя. В моем случае я сделал что-то похожее на следующее,

MediaInfo mediaInfo = new MediaInfo.Builder(
           "url")
             .setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
             .setCustomData(jsonCustomData) 
             .build();

Затем загрузили mediaInfo, как показано ниже:

mRemoteMediaPlayer.load(mApiClient, mediaInfo, true).setResultCallback(....);

В моем приложении-приемнике я попытался получить jsonCustomData, как показано ниже:

var customData = window.mediaManager.LoadRequestData.customData;

Тем не менее, не похоже, что это работает. Я заметил, что в некоторых примерах приложений некоторые люди используют метод Cast.CastApi.sendMessage и используют window.message.onMessage=function(event), где event.data будет содержать сообщение. Может ли кто-нибудь объяснить разницу между этими двумя методами? Что я делаю неправильно?

Заметьте, мой код получателя не упакован в функцию window.onload, мне нужно?

Спасибо за помощь!

1 ответ

Возможно, вы захотите подключиться к обратному вызову mediaManager.onLoad (событие) (посмотрите, как это сделать правильно; вам нужно убедиться, что вы вызываете оригинальный onLoad в своей реализации). Тогда, если моя память мне не изменяет, event.data должен быть типа cast.receiver.mediaManager.LoadRequestData, Если так, event.data.media.customData должны иметь пользовательские данные, которые вы указали в mediaInfo. Если вы используете customData в своей команде mRemoteMediaPlayer.load() (вместо mediaInfo), тогда он должен быть доступен в том же обратном вызове, но через event.data.customData, Пожалуйста, проверьте это по отношению к API получателя, чтобы убедиться, что они верны.

Другие вопросы по тегам