2016-08-30 5 views
-1

私はonClick methord PlaySoundを作成しました。これは、ifステートメントが再生中の天気や再生していない天気をチェックします。 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のための手順に従います。

あなたはMediaPlayerの

public MediaPlayer clickSound ; 

のグローバル変数を取り、その後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を宣言しようとしたときにエラーが発生していました。あなたの解決策は魅力のように働いています –

関連する問題