如何在 CastSDK v3 中自定义 ExpandedControllerActivity
Posted
技术标签:
【中文标题】如何在 CastSDK v3 中自定义 ExpandedControllerActivity【英文标题】:How to customize ExpandedControllerActivity in CastSDK v3 【发布时间】:2016-11-09 13:01:50 【问题描述】:我想使用我们自己的 UI 在 CastSDK v3 中自定义 ExpandedControllerActivity。但现在是不允许的。有什么办法吗?
【问题讨论】:
不幸的是,没有办法或解决方法来做到这一点。在网上查了一下,任何教程和谷歌文档都只是展示了如何实现或调用ExtendedControllerActivity
,而不是如何在ExtendedControllerActivity
中自定义 UI。您可以尝试按照这些教程来实现ExtendedControllerActivity
-Google Cast v3 and Media 和Expanded Controller。希望这会有所帮助。
【参考方案1】:
目前,自定义仅限于选择该活动上存在的控制按钮。但是,我们正在积极考虑扩展它以添加更多功能;敬请期待。
【讨论】:
2年后,有什么消息吗?【参考方案2】:如果您想自定义此活动,这将是很多工作,但这是可能的。您可以使用所需的视图创建自己的布局文件,然后使用 UIMediaController 将每个视图绑定到演员会话中存在的信息。
这个 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
某些信息,尤其是元数据字段可以使用 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...
我知道这不是很精确,但我希望能有所帮助:-)
【讨论】:
以上是关于如何在 CastSDK v3 中自定义 ExpandedControllerActivity的主要内容,如果未能解决你的问题,请参考以下文章