我试图制作媒体播放器,我的问题是当你点击下一个声音按钮时如何设置声音停止。现在,如果我单击声音按钮它可以工作,但如果我点击一个新的声音,它也可以,但第一个不停止。
这是我的代码:
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 :(得分:1)
问题是您有6种不同的MediaPlayers。 您必须暂停所有媒体播放器,然后启动当前播放器。
答案 1 :(得分:0)
你试过mp.stop();
这应该会停止第一个声音
public void btn5 (View v){
mp.stop();
MediaPlayer mp = MediaPlayer.create(this, R.raw.bstd5);
mp.start();
}
喜欢这里: http://developer.android.com/reference/android/media/MediaPlayer.html
答案 2 :(得分: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();
}
}