我的项目中有一个Button。 我想要点击按钮>>>>发出声音 再次点击按钮>>>停止声音...... 我使用此代码但无法停止声音并一次又一次地启动它... 我怎样才能做到这一点? 谢谢。
Button btritm1 = (Button) findViewById(R.id.button9991);
btritm1.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
final MediaPlayer mp1_1 = MediaPlayer.create(MainActivity.this, R.raw.ritm1);
if (event.getAction() == MotionEvent.ACTION_DOWN )
{
if(mp1_1 != null && mp1_1.isPlaying() )
{
mp1_1.stop();
}
else {
// xritm1 = 1;
// snd.stop_s_ritm1();
mp1_1.setLooping(true);
mp1_1.start();
}
} // end of if
return false;
}
}); // end of ontouch listener/*
答案 0 :(得分:1)
if(sound.isPlaying()){
sound.stop();
}else{
sound.reset();
sound.setDataSource(yourURL);//or InputStream etc.
sound.prepare();
sound.start();
}
答案 1 :(得分:1)
要使用良好实践,请将MediaPlayer对象声明为类变量,并在onCreate()方法中初始化它。您的问题是每次触摸控件时都会创建一个新的播放器对象。 如上所述,行
final MediaPlayer mp1_1 = MediaPlayer.create(MainActivity.this, R.raw.ritm1);
应该在听众之外。