直播时如何更改 MiniController 按钮

How to change the MiniController button if is live streaming

当我们将实时内容投射到 chromecast 时,我需要显示一个 play/stop 切换按钮而不是 play/pause 按钮,但我们在投射其他视频时仍然需要 play/pause。

我将微型控制器投射按钮设置为自定义按钮,在 onResume 中我调用了我的函数,该函数根据投射的内容绑定不同的可绘制对象。问题是,当我将视频更改为在已显示微型控制器的页面上直播(或以其他方式)时,它不会再次调用 onResume(理所当然),并且它会保留相同的按钮。我不知道我可以使用的 minicontroller 中是否还有另一个事件。我尝试使用 SessionManagerListener 和 UiController 将我的函数绑定到某些事件,但它们都有问题(我可能做错了什么,不知道)。

我的函数是:

fun checkButton() {
    activity?.let {
        val mCastContext = CastContext.getSharedInstance(activity!!.baseContext)
        val mCastSession = mCastContext.sessionManager.currentCastSession

        if (mCastSession?.remoteMediaClient?.currentItem != null) {
            val drawablePlay = ContextCompat.getDrawable(it, R.drawable.cast_ic_mini_controller_play)
            val drawableStop = ContextCompat.getDrawable(it, R.drawable.cast_ic_mini_controller_stop)

            uiMediaController.bindImageViewToPlayPauseToggle(button, drawablePlay!!, drawableStop!!, drawableStop, ProgressBar(it), false)
        }
    }
}

我希望每次加载 miniController 或类似的东西时调用我的函数。

谢谢!

找到了...看起来 uiMediaController.bindImageViewToPlayPauseToggle 已经自动执行此操作,它已经具有在直播时使用停止按钮的逻辑...