我可以在com.google.android.gms.cast.MediaMetadata中存储我想要的任何内容吗?

时间:2014-02-15 19:16:24

标签: google-cast chromecast

谷歌的文档现在发出404错误,所以我无法阅读。

似乎我可以将任何我想要的字符串放入MediaMetadata,但是当我从VCM(VideoCastManager)中检索它们时,它们就不存在了。有没有办法将自定义数据添加到MediaMetadata?

我想要这样,以便我可以获得有关应用程序重新连接时正在播放的视频的更多信息。

感谢。

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题......我找到了原因,就是我在发件人应用程序的代码中构建我的MediaMetaData对象。

使用常量MediaMetadata.MEDIA_TYPE_MOVIE(如在CastCompanionLibrary示例中所做的那样)在接收器应用程序代码中构建MediaMetadata对象不会让您存储除.putString(键,值)之外的任何内容。使用MediaMetadata.KEY_TITLE和MediaMetadata.KEY_SUBTITLE键。

这是我发现的......

由于我在chromecast上播放视频,我认为构建MediaMetadata对象的最佳方法是使用MediaMetadata.MEDIA_TYPE_MOVIE常量,如下所示:

MediaMetadata castMetaData = new MediaMetadata(MediaMetadata.MEDIA_TYPE_MOVIE);

然后....我尝试使用MediaMetadata对象发送以下数据:

castMetaData.putString(MediaMetadata.KEY_TITLE,"videoTitle");
castMetaData.putString(MediaMetadata.KEY_SUBTITLE,"videoSubTitle");
castMetaData.putString(MediaMetadata.KEY_ARTIST,"videoArtistName");

在将此MediaMetadata对象发送到接收器(确保三个KEY及其对应的值不明显)并且视频开始播放之后,我尝试通过以下方式调用从接收器检索视频的元数据:

MediaMetadata receiverMetadata = videoCastManager.getRemoteMediaInformation().getMetaData();

这返回了一个MediaMetadata对象,但是没有找到MediaMetadata.KEY_ARTIST映射。

将MediaMetadata构造参数更改为MediaMetadata.MEDIA_TYPE_GENERIC后,我可以在MediaMetadata对象中发送更多元数据:

MediaMetadata castMetaData = new MediaMetadata(MediaMetadata.MEDIA_TYPE_GENERIC);

注意 我不知道在实际任务是播放视频时,使用MediaMetadata.MEDIA_TYPE_GENERIC构建MediaMetadata对象是否正常。

答案 1 :(得分:0)

什么是VCM?您可以向MediaMetadat添加任意一对键/值,使用put*()的其中一种变体,例如putInt(key,value)putString(key, value)等。然后通过相应的get*()检索它们方法。在接收方,你将拥有一个带有这些键/值对的JSON,这样你就可以轻松地在那里检索它们。