根据Google自定义接收方文档,如果我们的应用程序执行身份验证,我们可以在发送方应用程序中加载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)。数据将包含消息。有人能解释一下这两种方法的区别吗?我做错了什么?
请注意,我的接收器代码没有包装在窗口中。onload函数,我需要吗?
谢谢你的帮助!
你可能想要挂钩到mediaManager.onLoad(事件)回调(看看如何正确地做到这一点;你需要确保在你的实现中调用了原始的onLoad)。那么,如果我没记错的话,event.data
应该是cast.receiver.mediaManager.LoadRequestData
的类型。如果是这样,event.data.media.customData
应该具有您在mediaInfo中指定的自定义数据。如果你在mRemoteMediaPlayer.load()命令中使用customData(而不是mediaInfo),那么它应该可以在相同的回调中访问,但通过event.data.customData
。