一般请参阅“CCL”,了解在 onRemoteStatusChange() 等事件上操作元数据等内容的接口...
看一下,IMO 如果您想将下面的消息类型更改为“METADATA_CHANGE”或更改 mediaInfo 的任何内容,那么只需将消息发送到接收器,您就应该得到您想要的广播。 .. 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 时,将在所有“侦听器”上调用状态更改事件,即所有已注册为“status-changed”侦听器的 IVideoCastConsumer 实现。
在 BaseCastManager 的 Base CCL 类中,您可以观察这个特定的状态变化,然后广播您的 onRemoteMediaPlayerMetadataUpdated() 事件,所有观察者都会得到相应的回调......或者监听事件并发送正确的类型给接收者的消息。
如果它不完全打算观察 mediaMetaDataChanges IMO ,那么查看它可能会帮助您使用和 @Override 调整现有 API 以获得您想要的结果。