2016-08-30 4 views
-1

if 문에서 사운드가 재생되고 있는지 또는 재생 중이 아닌지 날씨를 확인하는 onClick methord PlaySound를 만들었습니다. 재생중인 경우에는 재생을 중지하거나 시작합니다. 문제는 i입니다. if 문은 항상 거짓이고 절대 사실이 아닙니다.Android : if 문이 .isPlaying()으로 작동하지 않습니다.

CODE

public void PlaySound(View view) { 
    final MediaPlayer clickSound = MediaPlayer.create(this, R.raw.abcd); 

    if(clickSound.isPlaying()) { 
     clickSound.stop(); 
    } 
    else{ 
     clickSound.setLooping(true); 
     clickSound.start(); 
    } 
} 
+0

디버거를 실행하고 의심스러운 것이 튀어 나오는지 확인하십시오. – byxor

+0

이미 시도했습니다. 모든 것이 정확합니다. –

+0

소리가 다시 재생되기 시작합니다. –

답변

2

play 방법에서

final MediaPlayer clickSound = MediaPlayer.create(this, R.raw.abcd); 

를 제거하는 방법의 외부로 만든다. 당신의 convenince에 대한

편집이 단계를 수행하십시오

당신은

public MediaPlayer clickSound ; 

MediaPlayer를

의 전역 변수를 가지고 다음 onCreate 방법으로 만들 수 있습니다

clickSound = MediaPlayer.create(this, R.raw.abcd); 

때문에 당신을 play 방법은 다음과 같습니다.

public void PlaySound(View view) { 

    if(clickSound.isPlaying()) { 
     clickSound.stop(); 
    } 
    else{ 
     clickSound.setLooping(true); 
     clickSound.start(); 
    } 
} 
+0

오류가 발생했습니다. 오류가 발생했습니다. java.lang.NullPointerException : null 객체 참조에 가상 메소드 'android.content.res.Resources android.content.Context.getResources()'를 호출하려고 시도했습니다. –

+0

@VedSarkar에서 생성했습니다. onCreate 메서드? –

+0

외부에 clickSound 선언을 시도 할 때 오류가 발생했습니다. 귀하의 솔루션은 매력처럼 작동합니다. –

관련 문제