如何在 CastSDK v3 中自定义 ExpandedControllerActivity

How to customize ExpandedControllerActivity in CastSDK v3

我想用我们自己的 UI 在 CastSDK v3 中自定义 ExpandedControllerActivity。但现在是不允许的。有什么办法吗?

目前,自定义仅限于选择 activity 上的控制按钮。但是,我们正在积极考虑对其进行扩展以添加更多功能;敬请期待

如果您想自定义此 activity,这将需要大量工作,但这是可能的。您可以使用所需的视图创建自己的布局文件,然后使用 UIMediaController.

将每个视图绑定到演员 session 中存在的信息

这个 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)

在那 activity 中,您还可以通过这种方式直接访问您的视频:

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

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

我知道这不是很准确,但我希望对您有所帮助:-)