2014-08-27 108 views
0

我試圖讓mediaplayer,我的問題是如何設置聲音停止,當你點擊下一個聲音按鈕。現在,如果我點擊聲音按鈕,它的工作原理,但如果我點擊一個新的聲音,它的作品,但第一個不停止。按鈕和聲音?

這裏是我的代碼:

public class MainActivity extends ActionBarActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 
    public void onClick(View v){} 
    public void btn1 (View v){ 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.est1); 
    mp.start(); 
    } 
    public void btn2 (View v){ 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.ast2); 
    mp.start(); 
    } 
    public void btn3 (View v){ 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.dst3); 
    mp.start(); 
    } 
    public void btn4 (View v){ 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.gstd4); 
    mp.start(); 
    } 
    public void btn5 (View v){ 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.bstd5); 
    mp.start(); 
    } 
    public void btn6 (View v){ 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.estd6); 
    mp.start(); 


    } 
} 

回答

0

我建議你只使用一個MediaPlayer的,你可以重置和重用。

public class MainActivity extends ActionBarActivity { 

    private MediaPlayer mp; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mp = new MediaPlayer(); 
    } 

    public void btn1 (View v){ 
     mp.release(); 
     mp = MediaPlayer.create(this, R.raw.est1); 
     mp.start(); 
    } 
    public void btn2 (View v){ 
     mp.release(); 
     mp = MediaPlayer.create(this, R.raw.est1); 
     mp.start(); 
    } 

    @Override 
    public void onDestroy() { 
     mp.release(); 
    } 

} 
+0

非常感謝!解決我的問題:) – 2014-08-27 15:15:41

1

的問題是,你有6個不同的MediaPlayers。 您必須暫停所有媒體播放器,然後啓動當前播放器。