2011-01-27 4 views
1

これは最初のプレスで再生され、2回目のプレスで停止したり別のサウンドボタンを押したりします。私は音を再生することができれば、それを再開したり、1回のプレスで別の音を鳴らすことができます。Android:Mediaplayerは、生のリソースを停止/開始します。

私の目標は、同じボタンの2回目の押しで止めることですが、新しいボタンを押すだけで新しいサウンドが開始され、新しいサウンドが停止するのではなく、新しいサウンドが開始されます。

私はそれが今のことをなぜ行うのか分かりますが、私が望むように動作させる方法がわかりません。

public void playSound(int input){ 
    if (mp!=null && mp.isPlaying()) { 
     mp.stop(); 
     mp.reset(); 
    } else{ 
     if (mp!=null){ 
      mp.reset(); 
      mp.release(); 
     } 
     mp = MediaPlayer.create(Soundboard.this, input); 
     mp.start(); 
    } 
} 
+0

これを編集します。それはサウンドを途中まで再生し、ボタンが再び機能する前に数秒待ってから終了します。助けてください。ありがとう。 – Aaron

+0

お返事ありがとうございました。私はそれを上記のように機能するようにしましたが、私の目標には足りません。あなたがこれ以上の光を放つことができるなら、私はそれを感謝します。ありがとう – Aaron

答えて

3

コードのこのブロックは:

if (mp!=null){ 
    mp.reset(); 
    mp.release(); 
} 

が実行されることはありません。 mpは試験のブロックにあるので、この時点ではnullにしかなりません。これは、この方法の使用に関するあなたの考えに欠陥があることを示唆しています。

音が通過果たしていると、あなたはボタンを押すと、このコードが実行された場合:

mp.release(); 
mp = null; 

mpnullなかったので、elseブロックは実行されず、新しいサウンドが再生されません。もう一度ボタンを押すと、mpnullになり、elseブロックが実行され、新しいMediaPlayerが作成され、サウンドが再生されます。

関連する問題