MediaPlayer를 위한 Service 사용

|

0. 필요성

  현재 미디어 플레이어에서 Background 재생이 필요함.

  기본적으로 VLC 라이브러리를 사용시 백그라운드 재생이 가능하지만 다음과 같은 문제점들이 발견됨.(아직까진 서비스 미사용)

    * 문제점

      - LIVE 백그라운드 재생에 앱이 죽음. 

        (LIVE STREAM을 제외한 다른 영상은 정상적으로 재생됨. ex> FILE, VOD STREAM )

      - 앱을 전환시(backgound -> foreground) 화면에 딜레이가 발생함.


1. 해결방안

 1.1 Service - bindService

    기존에 Service로 개발시에는 앱전환시 문제가 발생하지 않았음.

    LIVE의 경우는 전에 사용하던 플레이어는 지원하지 않는 기능이기 때문에 새로 테스트가 필요해보임.

    

   1.1.1 TEST 앱 개발.

      LIVE 백그라운드 재생시 이상없이 재생되며, 전환시의 문제점도 해결됨.

      하지만 앱을 종료할 경우, 백그라운드로 재생되는 영상이 같이 종료됨.


 1.2 Service - startService ( onStartCommand )

    상단의 문제를 해결하고자 앱이 종료되어도 서비스는 작동되는 방식을 찾음.

    

   1.2.1 TEST 앱 개발.

      앱을 종료 후에도 정상적으로 재생되는 것을 확인함.

      단, 앱의 서비스가 재시작되는 것을 확인하였고, 내부 데이터가 초기화 되는 것을 확인함.

 

 1.3 Service - startService ( onStartCommand ) + startForeground

    재시작이 아닌 종료되지 않는 서비스를 찾음.


   1.3.1 TEST 앱 개발

      모든 문제 점들이 해결됨. 

      추가적으로 Notification을 사용하여야 하며 (new Notification 형태로 넣으면 Notification이 없이 사용은 가능하지만 종료에 문제 발생)

      안드로이드 4.2.2 이상부터 정상적으로 지원되는 기능이기 때문에 이전 버전에 대한 지원은 불가능함.



( 출처 : https://developer.android.com/about/dashboards/index.html?hl=ko )


      상단의 점유율(2017년 12월 11일 기준)을 기준으로 낮은 점유율을 가지기 때문에 해당 버전에서는 지원하지 않도록 결정함.


2. 마치며..

  현재 플레이어 자체를 개발하는 것이 아닌 SDK를 개발하기 때문에 어디까지 개발을 진행할지를 확실히 정해야 함.



※ 첨부파일

 라이브러리의 용량이 엄청나기 때문에 gradle 및 src만 압축하여 업로드 함.

 

app.zip



'Android > etc' 카테고리의 다른 글

Android VLC Compile  (0) 2018.02.06
화면 코드로 회전 시키기  (0) 2018.01.23
Android - MediaPlayer Issue  (0) 2017.11.15
Android Studio - AAR 생성  (0) 2017.10.10
Android - constant expression required  (1) 2017.10.10
And