按钮在单击时更改开始声音,如果移动手指则停止

时间:2013-09-11 01:06:45

标签: android

嗨现在我做了应用程序运行声音并改变图片,如果我现在按下它,如果我在图片上预定声音将运行和振动,但如果我移动我的手指每一件事都会像往常一样但问题是那;它运行一次然后它将不会再运行一次这是代码`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;
        }
    });


    }
        `

1 个答案:

答案 0 :(得分:0)

您可以参考MediaPlayer reference

调用stop()会停止播放并导致处于Started,Paused,Prepared或PlaybackCompleted状态的MediaPlayer进入Stopped状态。 一旦处于Stopped状态,在调用prepare()或prepareAsync()以再次将MediaPlayer对象设置为Prepared状态之前,无法开始播放。 调用stop()对已处于Stopped状态的MediaPlayer对象没有影响。

所以在调用stop()之后,你必须在start()之前调用prepare()。