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

MediaPlay, 2개의 Activity에서 MediaPlay공유하기 질문드립니다.

0 추천
MediaPlayer(mp3 컨트롤러)는 Fragment로 구현되어 있습니다.

Fragment에는 Fragment를 상속받은 Controller Class와 AsyncTask를 상속 받은 SeekBarHandler클래스를 가지고 있고 Controller클래스에는  play, pause...등등이 구현되어 있으며 SeekBarHandler에는 Seekbar움직임과 시간 변화를 움직이는 기능을 가지고 있습니다.

이렇게 하나의 Fragment로 되어 있는데요

문제는 MainActivty와 SubActivity에서 하나의 MediaPlayer를 공유해야 된다는 겁니다.

예를들어 MainActivity에서 MediaPlayer가 동작하면서 Seekbar와 TextView가 움직일 때  SubActivity에 가서도 끊김없이 노래가 나와야돼고 Seekbar의 게이지와 TextView가 계속 진행되어야 됩니다.

첫 번째는

단순하게  Intent를 통해서 statActivity시에 값을 보내줄까 생각해봤습니다.

MainActivity의 핸들러를 통해서 지속적으로 값을 던져줘야 하는지 의문도 있고

Intent를 통해서 지속적으로 던져주는 방법이 있는지요?? 화면이 전환될 때만 넘길 수 있는게 아닌가 싶어서요

 

두 번째는

mediaPlayer를 전달해서 subActivity에서 하는게 맞는 것 같아서

mediaPlayer를 던지려고 Serializable을 사용했는데... 아래와 같은 오류가 발생해서...

Parcelable encountered IOException writing serializable object

예제나 샘플 보니까

Serializable을 구현해서 String, int.....이런 객체들만 담고 있더라고요

객체는 넘길 수 없나요??

 

어떤게 오른거고 어떤 방법을 사용해야 되나요??

답변 부탁드립니다.
androidO (260 포인트) 님이 2015년 5월 18일 질문
androidO님이 2015년 5월 18일 수정
저도 궁금해서 왔는데 명확한 답변은 없네요

2개의 답변

+3 추천
 
채택된 답변
음악을 재생하는 거라면 MediaPlayer 부분을 서비스로 옮기세요.
익명사용자 님이 2015년 5월 19일 답변
androidO님이 2015년 5월 19일 채택됨
답변 감사합니다.
service로 돌리려고 작업하고 있는데 궁금한게 하나 있습니다.
서비스로 돌리게되면은 Fragment에 있는 UI, Seekbar,TextView에 접근 가능한 방법이 있을 것 같은데... 어떻게 하면 되나요??
검색도 해보겠습니다.
아시면은 답변 부탁드립니다.
매발톱님 댓글 보고 방법을 찾았네요.
http://www.androidpub.com/1835966
0 추천
그냥 인터페이스에다가 선언해놓고

사용하는 부분에서 implement 하면 되지 않아요?
익명사용자 님이 2015년 5월 18일 답변
답변 감사합니다.
subActivity에서 Play나 Pause, Seekbar를 컨트롤 했을 때 인터페이스를 사용해서
동작시키려고 했는데요
MediaPlayer를 반환받아서해도 괜찮을 것 같네요.
startAcitivity(getApplicationContext, SubActivity.class);
를 사용했는데요 MainActivity를 Implement하고 subActivity한데 던져줘야하는데
어떻게 해야되는지 방법 좀 알 수 있을까요?
위에분 말처럼 서비스로 돌리세요.
...