类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)