0

根据 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 函数,我需要吗?

谢谢您的帮助!

4

1 回答 1

2

您可能想要挂钩 mediaManager.onLoad(event) 回调(请参阅this了解如何正确执行此操作;您需要确保在实现中调用原始 onLoad)。那么,如果我没记错的话,event.data应该是cast.receiver.mediaManager.LoadRequestData. 如果是这样,event.data.media.customData应该有您在 mediaInfo.xml 中指定的自定义数据。如果您在 mRemoteMediaPlayer.load() 命令中使用 customData(而不是 mediaInfo),那么它应该可以在同一个回调中但通过event.data.customData. 请根据接收方 API 参考验证这一点,以确保它们是正确的。

于 2015-10-22T20:15:45.823 回答