根据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函数,我需要吗?
感谢您的帮助!
答案 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参考对此进行验证,以确保它们正确无误。