Chromecast发件人和收件人通讯

时间:2015-10-22 19:00:21

标签: javascript android google-api chromecast android-cast-api

根据Google Custom Receiver文档,如果我们的应用执行身份验证,我们可以在发件人应用程序中以json格式加载customData。就我而言,我做了类似以下的事情,

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 个答案:

答案 0 :(得分:1)

您可能想要挂钩到mediaManager.onLoad(事件)回调(请参阅this了解如何正确执行此操作;您需要确保在实现中调用原始的onLoad)。然后,如果我的记忆正确,event.data应为cast.receiver.mediaManager.LoadRequestData类型。如果是这样,event.data.media.customData应该具有您在mediaInfo中指定的自定义数据。如果在mRemoteMediaPlayer.load()命令中使用customData(而不是mediaInfo),那么它应该可以在同一个回调中访问,但可以通过event.data.customData访问。请根据接收器API参考对此进行验证,以确保它们正确无误。