更新Chromecast MediaMetadata

时间:2014-05-23 13:58:21

标签: android chromecast google-cast

我正在Chromecast应用中播放实时HLS流,并且我想在程序开始/结束时更新MediaMetadata。但是我找不到这样做的方法。我可以使用新的MediaInfo再次加载流,但我不能只更新现有的元数据。有没有办法做到这一点?

目前我正在使用Android应用程序进行投射。

有没有办法将新的MediaMetadata发送到接收方,或者我可以传递包含该信息的自定义数据消息,并使用javascript更新发件人中的元数据吗?

1 个答案:

答案 0 :(得分:0)

见' CCL'通常用于在onRemoteStatusChange()...

等事件上操作metaData之类的东西的接口

看着这一点,IMO如果你想将下面的消息类型改为" METADATA_CHANGE"或者无论媒体信息的变化如何,只需将信息发送给接收者,你就可以得到你想要的广播... onMediaDataChanged()。

从接收器到CastMgr的样本消息......

{"requestId":0,"status":{"applications":[{"appId":"33E59692","displayName":"test-receiver-app","namespaces":[{"name":"urn:x-cast:com.google.cast.player.message"},{"name":"urn:x-cast:com.google.cast.media"}],"sessionId":"0869F8A7-25CE-E55F-F571-346EBABB81FB","statusText":"Ready To Cast","transportId":"web-3"}],"isActiveInput":true,"volume":{"level":1.0,"muted":false}},"type":"RECEIVER_STATUS"}

onRemoteMediaPlayerStatusUpdated()

当接收器在视频结束时从PLAY转到IDLE时,将在所有听众上调用状态改变事件'即已注册为状态改变的听众的IVideoCastConsumer的所有实现'。

在BaseCastManager的Base CCL类中,您可以监视此特定状态更改,然后广播您的onRemoteMediaPlayerMetadataUpdated()事件,所有观察者都将获得相应的回调....或者监听事件并发送正确的类型消息给接收者。

如果它并不完全是为了观察mediaMetaDataChanges IMO,那么查看它可能会帮助您使用和@Override调整现有的API以获得您想要的结果。