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

오디오 재생중에 재생버튼 눌러도 겹쳐서 재생안되게 어떻게하나요?

0 추천

    public void onClicked1(View v) {
        mediaPlayer = MediaPlayer.create(this, R.raw.noise);
        mediaPlayer.start();
        mediaPlayer.setLooping(true);
    }

    public void onClicked2(View v) {
        if (mediaPlayer != null && mediaPlayer.isPlaying()) {
             mediaPlayer.stop();
             mediaPlayer.release();
        }

오디오 재생버튼을 누르면 실행이 잘되는데 재생되고있는 상태에서 누르면 겹쳐서 또 재생되네요.

재생되고 있을 때는 눌러도 재생안되게 할려면 어떡하나요?

익명사용자 님이 2015년 5월 28일 질문

2개의 답변

0 추천
 
채택된 답변

public void onClicked1(View v) {
 if (mediaPlayer == null) 
  mediaPlayer = MediaPlayer.create(this, R.raw.noise);
 if (mediaPlayer.isPlaying() == false) {
  mediaPlayer.start();
  mediaPlayer.setLooping(true);
 }
}
 

버튼의 처리부에 static 변수를 사용해서 실행중인 상태와 아닌상태를 구분해서 처리하는 방법 질문자께서 하시는 것처럼 이벤트 처리함수를 바꾸는 방법이 있을 듯 한데요.

위 코드만을 보자면

onClicked1이 처음 중지상태의 이벤트 처리함수

onClicked2가 실행중일때 처리함수로 구현하신듯 한데요.

버튼이 2개인가요?

음.. 상황을 짐작 못하는 부분이 있는데...

 

아무튼 onClicked1 만을 상대로 보자면 위코드 처럼해주시면 되지 않을까 합니다.

 

 

컴러기 (22,230 포인트) 님이 2015년 5월 28일 답변
오디오 재생 홈키 문제질문드려요
0 추천

재생버튼 과 스탑버튼이 있는데 재생버튼을 한번누르고 다시 누르면 새로 재생을 한다는 말씀이신가요..?

boolean 값 하나를 기본 false 를 준다음에 false 일때 재생이 되게 만들고 true 으로 준다음에

true 일땐 토스트를 띄운다던가 아무동작안하게 혹은 일시정지를 하면되겠죠

윗분 답변처럼 isPlaying , isStopped을 쓰셔도됩니다.

콜벳 (7,150 포인트) 님이 2015년 5월 28일 답변
...