Android Story

[ Android ] MediaPlayer & VideoView

WhiteDuck 2016. 1. 26. 13:41



Android에서 쓰이는 영상처리뷰어 중에서 MediaPlayer 와 VedioView의 차이점에 대해서 참고자료를 찾았다.


 Media Player는 영상 처리부분과 오디오처리 부분으로 나뉜다.

영상처리하는 부분은 surfaceView를 사용하여서 화면에 영상을 뿌리는 데 surfaceview는 백그라운드 쓰레드에서 화면을 엡데이트 하여 ANR(Application Not Responding : 어플리케이션 무 응답 에러)을 방지한다.  또한 Surface는 Surface를 관리하는 홀더 객체로 findViewByID등 호출하는 알고리즘의 수를 줄여 속도를 높이는 방법이다.






위의 소스는 버튼을 통하여서 비디오를 제어하는 mediaplayer 이다.

물론 surface로 화면을 제공하고 mediaplayer는 오디오만을 제공한다.


다음의 소스는 mediaController를 추가하여 자유로운 제어가 가능하도록 하였다.





Mediacontroller를 생성하여 MediaPlayer에 적용시킨 경우이다.



기존 소스의 경우에는 PLAY / PAUSE 와 STOP 버튼밖에 없었지만 변경된 소스는 Mediacontroller가 추가된 액티비티이다.


 VedioView는 다양한 자원에서 영상을 불러올 수 있는 동영상 재생 View이다. 해서 View에 MediaController를 직접 세팅할 수는 간편함이 있다.








 구지 다른점을 꼽자면 Surface의 MediaController는 SufaceHolder안에 생기는 반면  VedioView의 MediaController는 Window의 화면 구성 아래에 생긴다는 것 정도...??


출처

1) MediaPlayer & VedioView SildeShare

http://www.slideshare.net/luvgaram/mediaplayer-videoview

2) source

 - 1)의 소스 https://github.com/luvgaram/android_GDG_examples

 - MediaController 추가 참고 소스 http://stackoverflow.com/questions/14635013/android-how-to-use-show-mediacontroller-with-surfaceview-and-mediaplayer-for-vid 

반응형