嗨现在我做了应用程序运行声音并改变图片,如果我现在按下它,如果我在图片上预定声音将运行和振动,但如果我移动我的手指每一件事都会像往常一样但问题是那;它运行一次然后它将不会再运行一次这是代码`public class MainActivity extends Activity { 振动器df; // protected MotionEvent事件;
MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mp = MediaPlayer.create(this, R.raw.sh);
ImageButton m = (ImageButton)findViewById(R.id.imageButton1);
m.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
// TODO Auto-generated method stub
if(MotionEvent.ACTION_DOWN == arg1.getAction())
{
mp.start();
df= (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
}
else
if(MotionEvent.ACTION_UP == arg1.getAction())
{
mp.stop();
df.cancel();
}
return false;
}
});
}
`
答案 0 :(得分:0)
您可以参考MediaPlayer reference。
调用stop()会停止播放并导致处于Started,Paused,Prepared或PlaybackCompleted状态的MediaPlayer进入Stopped状态。 一旦处于Stopped状态,在调用prepare()或prepareAsync()以再次将MediaPlayer对象设置为Prepared状态之前,无法开始播放。 调用stop()对已处于Stopped状态的MediaPlayer对象没有影响。
所以在调用stop()之后,你必须在start()之前调用prepare()。