마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

다른 액티비티에서 배경음악(mediaplayer) 변경하는 방법 [closed]

0 추천

안녕하세요, 배경음악 mediaplayer 관련 질문입니다.

초보 개발자라 서치도 쉽지 않아 질문 드립니다.

 

우선 코틀린 개발자입니다. 액티비티가 여러개인 게임 앱을 개발하고 있습니다. MainActivity에 MediaPlayer 객체를 선언하고 create까지 해놓았다고 할 때,

제가 구현하고 싶은 건 다음과 같습니다.

  1. 모든 액티비티에서 음악이 끊기지 않고 재생된다.
  2. 홈화면으로 이동시 음악이 일시정지 된다. 다시 앱으로 돌아가면 재생된다.
  3. MainActivity가 아닌 다른 activity에서, 현재 재생중인 음악을 release하고 다른 음악으로 재설정할 수 있다.

 

세 가지 각각은 구현하겠는데, 세 가지 모두 구현하기가 쉽지 않네요.

보통 휴대폰 게임에서 기본으로 갖추는 사항인데.. 자세한 방법까지는 되었고 어떤 식으로 구현하는지만이라도 답변 부탁드립니다. 서비스로 개발하면 되나요? 아니면 다른 방법이 있나요?

 

감사합니다.

질문을 종료한 이유: 방법을 찾았습니다.
뭉탱이 (120 포인트) 님이 2022년 2월 10일 질문
뭉탱이님이 2022년 2월 10일 closed
제가 이쪽 분야를 하는 게 아니라서 구체적인 코드는 알려드릴 수 없지만, 기본적인 개념은 말씀드릴게요.
뮤직플레이같은 경우는 이미 그렇게 하셨겠지만, Service를 이용해야 앱에 상태에 상관없이 컨트롤이 가능합니다. 먼저 뮤직플레이어를 컨트롤할 수 있는 서비스 클래스를 만들어서 이 클래스와 아무데서나 메세지를 주고 받을 수 있도록 합니다. 이건 서버스에 파라미터를 전달하거나 BroadCastReceiver 또는 RxJava라이브러리 같은 것 등을 사용하면 구현이 가능할 겁니다.
개발자 문서의 Service 관련 부분이나 구글링을 해보시면 수많은 자료가 나올 겁니다. (물론 영문으로 하시는게 훨씬 좋긴합니다.)
Home으로 이동시의 제어는 ProcessLifeCycle 이나 ActivityLifecycle을 이용하여 처리하시면 됩니다.
https://developer.android.com/reference/android/arch/lifecycle/ProcessLifecycleOwner
https://proandroiddev.com/android-processlifecycleowner-by-example-2f965061b9da
https://developer.android.com/reference/android/app/Application.ActivityLifecycleCallbacks

그리고 구글의 ExoPlayer나 Github에서 뮤직플레이어 샘플코드를 찾아서 참고해 보세요.
https://github.com/topics/android-music-player
...