我想用自己的UI自定义CastSDK v3中的ExpandedControllerActivity。但现在不允许这样做。有没有办法做到这一点?
答案 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 ...
我知道这不是很精确,但我希望这会有所帮助:-)