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

MediaPlayer 종료 질문드립니다

0 추천
MediaPlayer써서 옵션창에서 온오프버튼으로 토글해놓구요

앱 종료하면 음악도 종료되어야하는데 음악은 계속 나오더라구요

그래서 홈버튼 누르고 작업관리자에서 그 앱을 없애면 음악이 사라지더군요

어제 하루종일 검색해봤는데 어떻게 종료해야 백그라운드에서 도는 음악까지 안나오게 할수 있을까요;;

 

옵션에서 음악 온오프할수있게 하고 메인화면에서 뒤로가기 눌러서 종료하면 음악까지 종료되게 하려고 합니다
사이다중독 (270 포인트) 님이 2014년 2월 12일 질문

1개의 답변

0 추천

Back 버튼은 앱을 종료하는 개념이 아닌뎅..

단지 이전화면으로 돌아가기 정도랄까  아니면 피니시 처리를 해두신건가 'ㅅ'

아무튼 Back 버튼 눌러서 앱화면에서 벗어나면 음악을 끄고 싶으신거죠?

public void onBackPressed()  그럼 백버튼 클릭했을 때

MediapPlayer mp; 라는 가정하에

mp.pause() 일시정지

mp.release() 초기화

mp.stop() 정지

finish() 앱(액티비티)종료하시면 될거같은데용?

 

p.s 음악은 한번 실행시키면 백그라운드에서 도는 작업이기때문에 앱을 종료하지 않는 이상 안꺼지는게 정상이지용

앞서 말씀드렸듯이 백버튼은 종료가 아니라 멀티태스킹을 위한 화면이탈 정도의 용도니까요

결론은 음악 종료를 위해서는 위와 같이 미디어플레이어를 직접 컨트롤 해주셔야해요

 

초보개발자ㅠ (33,870 포인트) 님이 2014년 2월 12일 답변
답변 감사드립니다(__)
근데 저걸 메인액티비티에다 해놓으면 mp를 못찾더라구요
mp는 다른엑티비티에서 정의해놔서 못불러오는것같더라구요
그래서 mp있는 옵션엑티비티에 적어놓으면 거기 나와서 메인으로 가면 음악이 종료되어버리고;;;
음.. 일단 궁금한게 메인액티비티에서 백키 눌렀을 때
피니시 처리하게 하셨어요?
mp를 Application객체나 뭐 아무곳이나 static으로 두시고 null일때는 생성 아닐때는 참조. 이렇게 해보세요...
저 같으면 서비스에 MediaPlayer 구현하고 BR ACTION_ 이용 해서 어플 전역에서 접근할 것 같네용...
초보개발자님
메인에
@Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d("testlog", "onDestroy");
    }
이렇게 해놨는데 super.onDestroy();여기에 뭘 넣어줘야할거같은데 모르겠습니다;;;
칠리님
답변감사합니다
mediaplayer있는 액티비티에서 static로 해놨는데 메인에서 그걸 못 불러오네요;;
BR ACTION_ 검색해볼께요
[수정]
메인 액티비티안에
public void onBackPressed(){
                  android.os.Process.killProcess(android.os.Process.myPid());
}
요거 한번 추가해보세용~ 해보고 안되면 말씀하세용
미디어플레이어를 컨트롤하는 쪽으로 가야할듯 '-'
오오 되네요 ㅋㅋ
매우 감사합니다(__)
드뎌 해결했네요~
...