Связь 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 получателя, чтобы убедиться, что они верны.