如何在CastSDK v3中自定义ExpandedControllerActivity

时间:2016-11-09 13:01:50

标签: android chromecast google-cast

我想用自己的UI自定义CastSDK v3中的ExpandedControllerActivity。但现在不允许这样做。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

目前,自定义仅限于选择该活动上存在的控制按钮。然而,我们正在积极寻求扩展以增加更多功能;敬请期待。

答案 1 :(得分:0)

如果您想自定义此活动,将需要做很多工作,但有可能。您可以使用所需的视图创建自己的布局文件,然后使用UIMediaController将eachView绑定到投射会话中存在的信息。

此UIController上有很多可能的绑定,因此我建议您尝试一些,直到找到一个有趣的人为止,以下是一些示例:

val uiController = UIMediaController(this)
uiController.bindSeekBar(castSeekBar, 1000L) // Binding a CastSeekBar to video progress
uiController.bindTextViewToStreamPosition(castPositionTextView, true) // Binding a TextView to video current position
uiController.bindTextViewToStreamDuration(castDurationTextView) // Binding a TextView to video duration

某些信息(尤其是metada字段)可以使用MediaMetadata中存在的键(例如标题或副标题)来访问:

uiController.bindTextViewToMetadataOfCurrentItem(castTitleTextView, MediaMetadata.KEY_TITLE)
uiController.bindTextViewToMetadataOfCurrentItem(castSubtitleTextView, MediaMetadata.KEY_SUBTITLE)

在该活动中,您还可以通过以下方式直接访问视频:

val sessionManager = CastContext.getSharedInstance(this).sessionManager
val remoteMediaClient = sessionManager.currentCastSession?.remoteMediaClient
val mediaInfo = remoteMediaClient?.mediaInfo

在这里,mediaInfo将包含很多信息,例如持续时间,元数据,contentId ...

我知道这不是很精确,但我希望这会有所帮助:-)