- (public) VideoView.setMediaController(MediaController controller) 호출
- 이미 MediaController가 설정되어 있는 경우 보이지 않도록 처리(hide() 호출)
- 내부적으로 사용하는 handler message를 제거
- MediaController를 포함하고 있는 decor view를 제거
- (private) VideoView.attachMediaController() 호출
- media controller와 media player가 상호 참조될 수 있도록 설정
- media controller가 추가될 view를 결정
- (public) MediaController.setAnchorView() 호출
- (MediaController 자체는 FrameLayout 이므로) 자신에 포함된 모든 자식 views를 삭제
- (protected) MediaController.makeControllerView() 호출
- com.android.internal.R.layout.media_controller(.xml)를 이용해 view group을 inflate
- (private) MediaController.initControllerView() 호출
- ImageButton(pause, fast forward, rewind, next and previous) 초기화
- ProgressBar(or SeekBar) 초기화
- TextView(end time and current time) 초기화
- StringBuilder and Formatter instance 생성
- (private) installPrevNextListeners() 호출
- Next와 Previous 버튼에 listener를 설정하고, listener가 null이 아닌경우에만 각 버튼을 활성화
- inflate된 ViewGroup을 반환
- makeControllerView()가 반환한 ViewGroup instance를 LayoutParams(MATCH_PARENT, MATCH_PARENT)와 함께, 자신(MediaController, FrameLayout)의 child로 추가
- VideoView의 상태가 ERROR, IDLE, or PREPARING이 아닌경우 MediaController를 활성화
Posted by 세월의돌