视频播放器的界面设计并实现播放器

本文解析了MediaController类的主要属性和方法,包括播放接口TransportControllermController、进度条mProgress、按钮状态更新方法updateButtons()等,并介绍了如何通过setMediaPlayer()设置播放控制器。

类MediaController extends FrameLayout:

           

属性:

               TransportController mController;播放的接口

               Context  mContext;上下文

               ProgressBar mProgress;

               TextView mEndTime,mCurrentTime;

               boolean mDreagging;

                boolean mUseFastForward;

               boolean mListenersSet;

                boolean mShowNext,mShowPrev;

                private View.OnclickListener mNextListener,mPrevListener;

                 StringBuilder mFormatBuilder;

                Formatter mFormatter;

                  ImageButton mPauseButton;

                  ImageButton mFfwdButton;

                 ImageButton mRewButton;

                 ImageButton mNextButton;

                 ImageButton mPrevButton;

                 TransportStateListner mStateListener:状态监听器

方法:

               setMediaPlayer(TransortController controller):如果mController不能空,mController.unregisterStateListener(mStateListener);mController=controller;updatePausePlay();

               onAttachedToWindow(): mController.registerStateListener(mStateListener);

              onDetachedFromWindow():mController.unregisterStateListener(mStateListener);

              initControllerView():设置界面

             void updateButtons(){

              通过mPauseButton.setEnabled(enabled&&(flag&TransportMediator.FLAG_KEY_MEDIA_PAUSE)!=0);

              等等

              refresh():调用了updateProgress(),updateButtons(),updatePausePlay()

               stringForTime(int timeMs):表示字符串时间

              long updateProgress():返回position

              updatePausePlay():更新按钮

              doPauseResume():控制播放和暂停 

              SeekBar.OnSeekBarChangeListener mSeekListener:监听seekbar的滑动等操作

              setEnaled(enabled):调用updateButtons

              onInitializeAccessibilityEvent(event):

 类TransportControllerActivity extends Activity

属性:

            Content content;为继承了videoview

            TransportMediator mTransportMediator;

            MediaController mMediaController;

             TransportPerformer mTransportPerformer=new TransportPerformer(){

                ..........Content.start()等等

方法:

            dispatchKeyEvent(KeyEvent event)

内部类Content:

       实现onSystemUiVisibilityChange,onWindowVisibilityChanged,onClck(View v)

                  

                          

            

             

              

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值