2013-04-06 108 views
1

當的聲音,先前選擇正在播放的用戶,我怎麼能阻止這種聲音,並立即打新選定的聲音?我到目前爲止的代碼只能停止新的聲音,但用戶必須以發揮它再次選擇聲音。如何停止已經播放的聲音,並立即開始另一個

public class MainActivity extends Activity { 
    public MediaPlayer mediaPlayer = null; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Button a = (Button) findViewById(R.id.First); 
     a.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (mediaPlayer == null) { 
        mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.firstsound); 
        mediaPlayer.stop(); 
       } 
       else { 
        mediaPlayer.start(); 
        mediaPlayer = null; 
       } 
      } 
     } 
     ); 
     Button b = (Button) findViewById(R.id.Second); 
     b.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (mediaPlayer == null) { 
        mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.secondsound); 
        mediaPlayer.stop(); 
       } 
       else { 
        mediaPlayer.start(); 
        mediaPlayer = null; 
       } 
      } 
     } 
     ); 

我製作了超過30種聲音的音板,如果有幫助的話。我需要對我的代碼進行什麼(輕微的假設)更改?任何幫助將不勝感激!

+0

應按鈕第一和第二代表什麼功能? – 2013-04-06 21:16:08

+0

他們點擊時發出聲音。如果按鈕「第一」被單擊開始,然後當用戶選擇按鈕「第二」,通過按鈕播放的聲音「第一」應該停止和第二聲應該開始播放。 – user2250122 2013-04-06 21:25:16

回答

1
public class MainActivity extends Activity { 

    public MediaPlayer mediaPlayer = null; 
    public Boolean playing=false; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Button a = (Button) findViewById(R.id.First); 
     a.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       (playing)mediaPlayer.stop(); 
       mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.firstsound); 
       mediaPlayer.start(); 
          playing=true; 
      } 

     }); 

     Button b = (Button) findViewById(R.id.Second); 
     b.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       (playing)mediaPlayer.stop(); 
       mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.firstsound); 
       mediaPlayer.start(); 
          playing=true; 
      } 
     }); 
    } 
} 
+0

檢查mediaPlayer是否在停止它之前爲null.if(mediaPlayer!= null && mediaPlayer.isPlaying)mediaPlayer.stop();' – AwadKab 2013-04-06 22:30:10

+0

@ user2250122編輯答案 – 2013-04-06 22:31:41

+0

@ user2250122如果這些答案中的任何一個幫助你,你可以放棄聲望,通過接受一個答案(點擊左邊綠色的勾)和/或upvoting答案(點擊橙色向上箭頭左)。祝你工作順利! maurizio – 2013-04-06 22:32:38

相關問題