Android的VideoView中默认会有控制条可以显示进度和拖动的但是这个进度条会默认在1秒后自动消失,需要点击事件来触发怎么让这个控制条一直显示呢?

解决方案 »

  1.   

    看了下源码
    有这么个方法:private boolean isInPlaybackState() {
            return (mMediaPlayer != null &&
                    mCurrentState != STATE_ERROR &&
                    mCurrentState != STATE_IDLE &&
                    mCurrentState != STATE_PREPARING);
        }然后有几个地方调用到:public void setMediaController(MediaController controller) {
            if (mMediaController != null) {
                mMediaController.hide();
            }
            mMediaController = controller;
            attachMediaController();
        }
     
        private void attachMediaController() {
            if (mMediaPlayer != null && mMediaController != null) {
                mMediaController.setMediaPlayer(this);
                View anchorView = this.getParent() instanceof View ?
                        (View)this.getParent() : this;
                mMediaController.setAnchorView(anchorView);
                mMediaController.setEnabled(isInPlaybackState());
            }
        }@Override
        public boolean onTouchEvent(MotionEvent ev) {
            if (isInPlaybackState() && mMediaController != null) {
                toggleMediaControlsVisiblity();
            }
            return false;
        }
    在onTouchEvent 这个方法里也有 我想也不是说1秒就没有了 这个要看情况 ,我记得是触摸一下就消失再触摸一下又显示的 你看看源码将onTouchEvent 中的方法重写看看 这样可以能一直显示
      

  2.   

    也可以尝试重写一下MediaController中的hide()方法,什么也不做,直接返回
      

  3.   

    楼上的方法比较简单,hide方法就是隐藏控制栏的