You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断Android MediaController视图何时可见

关于MediaController可见状态变化监听的解决方案

原生Android的MediaController并没有提供直接监听其可见状态变化的内置监听器,但可以通过自定义MediaController子类的方式实现该需求,核心思路是重写控制显示/隐藏的关键方法,并添加自定义回调接口来对外通知状态变化。

实现步骤:

  • 自定义继承自MediaController的子类,添加可见状态变化的监听接口
  • 重写show()、show(int timeout)和hide()方法,在方法执行时触发自定义回调
  • 使用自定义控制器时设置监听器,即可捕获显示/隐藏时机

代码示例:

public class CustomMediaController extends MediaController {
    private OnVisibilityChangedListener mVisibilityListener;

    public CustomMediaController(Context context) {
        super(context);
    }

    // 自定义可见状态变化监听接口
    public interface OnVisibilityChangedListener {
        void onControllerShow();
        void onControllerHide();
    }

    public void setOnVisibilityChangedListener(OnVisibilityChangedListener listener) {
        mVisibilityListener = listener;
    }

    @Override
    public void show() {
        super.show();
        if (mVisibilityListener != null) {
            mVisibilityListener.onControllerShow();
        }
    }

    @Override
    public void show(int timeout) {
        super.show(timeout);
        if (mVisibilityListener != null) {
            mVisibilityListener.onControllerShow();
        }
    }

    @Override
    public void hide() {
        super.hide();
        if (mVisibilityListener != null) {
            mVisibilityListener.onControllerHide();
        }
    }
}

使用方式:

// 初始化自定义控制器并绑定VideoView
CustomMediaController mediaController = new CustomMediaController(this);
mediaController.setAnchorView(videoView);
videoView.setMediaController(mediaController);

// 设置状态监听
mediaController.setOnVisibilityChangedListener(new CustomMediaController.OnVisibilityChangedListener() {
    @Override
    public void onControllerShow() {
        // 控制器显示时执行的逻辑
    }

    @Override
    public void onControllerHide() {
        // 控制器隐藏时执行的逻辑
    }
});

通过这种方式,就能精准捕获MediaController的显示和隐藏时机,满足业务需求。

内容的提问来源于stack exchange,提问作者penecay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 04:15:44