btn1.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
reproducir(mp1, motionEvent, btn1, colorin);
return false;
}
});
public void reproducir(MediaPlayer mp, MotionEvent motionEvent, Button btn, String colorin ){
switch(motionEvent.getAction()){
case MotionEvent.ACTION_DOWN:
mp.start();
btn.setBackgroundColor(getResources().getColor(R.color.Blanco));
if(instrumento.getText().equals("piano")) {
mp.setLooping(true);
}
break;
case MotionEvent.ACTION_UP:
mp.stop();
ponerColor(colorin);
}
}
最后一行调用一个方法再次放置按钮的原始颜色,非常感谢
答案 0 :(得分:0)
你的守则只有一个小错误:
您应该将mp.stop();
替换为mp.pause();
这就是全部。
最好是这样但是:
if (mp.isPlaying()){
mp.pause();
}
....
if (!mp.isPlaying()){
mp.start();
}
...
if (!mp.isLooping()){
mp.setLooping(true);
}
我还应该让你知道mp.stop()
停止播放媒体,这很好,但只有当你想要整个MediaPlayer忘记正在播放的歌曲而我们只想改变音频时,才会使用停止,重置MEdia播放器并启动另一个音频。
希望你找到这个有用的