1

只要用户ImageView按住并在用户停止按住时暂停它,我就需要播放某种声音。在对 进行任何操作之前MediaPlayer,我尝试使用Vibrator(此时请不要笑)对象对其进行测试。我已经实现并设置了一个OnTouchListener

    @Override
public boolean onTouch(View v, MotionEvent event) {

    switch (event.getAction()) {

    case MotionEvent.ACTION_DOWN:

        vib.vibrate(50);

        break;

    case MotionEvent.ACTION_MOVE:
        /*--- no action required ---*/
        break;

    case MotionEvent.ACTION_UP:

        vib.cancel();
        break;
    }
    return false;

}

但是,无论我按住多久,振动动作都只会执行一次ImageView。我猜 aMediaPlayer会以同样的方式做出反应。我究竟做错了什么?

PS 正确检测到按下,因为Vibrator只有在我松开手指后才会记录“取消()”。

4

1 回答 1

1

它停止了,因为在功能中

vib.vibrate(50);

您在振动检查中设置为 50 ms 时间

void vibrate(long milliseconds)
Vibrate constantly for the specified period of time.

我认为您的其余代码是正确的。

于 2013-09-11T17:24:24.723 回答