9D4U 2018. 7. 11. 09:23
728x90
반응형

안드로이드 장치의 비디오 재생을 구현 <- VideoView(시각적)와 MediaController 클래스(제어역할)


○ VideoView 클래스

1. 단순히 시각적으로 비디오를 보여주는(재생) 동작 구현

2. 비디오 재생 시 주로 사용되는 메서드

- setVideoPath(String path) : 재생될 비디오 미디어의 경로를 문자열로 지정함.(이 경로는 url주소 또는 로컬 경로가 될 수 있음)

※경로를 외부. 즉, url 주소로 가져오는 경우 AndroidMenifest 설정 파일에 인터넷 퍼미션을 추가해야 함

- setVideoUri(Uri uri) : setVideoPath() 와 같은 동작을 수행하지만, 문자열 대신 Uri 객체를 인자로 받음.

- setOnPreparedListener(MediaPlayer.OnPreparedListener) : 비디오 재생 준비가 될 때, 콜백 메서드가 호출될 수 있게 함.

- setCompletionListener(MediaPlayer.OnCompletionListenr) : 비디오의 끝에 도달하면, 콜백 메서드가 호출될 수 있게 함. 

- setOnErrorListener(Medeaplayer.OnErrorListener) : 비디오 재생 중 에러가 발생할 때, 콜백 메서드가 호출될 수 있게 함.

- setMediaContoller(MediaController) : 비디오 재생 컨트롤들을 사용자가 볼 수 있게 해 주는 MediaController 인스턴스를 지정

- start() : 비디오 재생 시작

- stopPlayback() : 비디오 재생 중단

- pause() : 비디오 재생 일시 중지

- isPlaying() : 비디오가 현재 재생 중인지 여부를 boolean 값으로 반환

- getDuration() : 비디오의 재생 시간을 반환(OnPreparedListener() 콜백 메서드에서 호출되지 않을 때는 -1 반환 = 비디오 재생 준비 x)

- getCurrenrPosition() : 현재 재생 위치를 나타내는 정수값 반환

○ MediaContoller 클래스

1. 재생 제어 = VideoView 인스턴스에 MediaController 클래스 인스턴스를 첨부

2. 주요 메서드

- setAnchorView(View view) : 컨트롤러가 고정될 뷰를 지정, 화면상의 컨트롤러 위치를 제어함.

- show() : 컨트롤들을 보여줌

- show(int timeout) : 1/1000초 단위로 지정된 시간 동안 컨트롤들을 보여줌

- hide() : 컨트롤들을 숨김

- isShowing() : 컨트롤들이 현재 사용자에게 보이는지 여부를 boolean 값으로 반환


728x90