如何让ImageButton在每次点击时重复一个声音

How to make ImageButton repeat a sound each time it's clicked

我试图让图像按钮在每次单击时播放声音。例如,如果声音播放了几秒钟,我再次按下按钮,它应该从头开始。我设法让声音正常工作,但它没有重复。我怎样才能让它重新开始?

ImageButton bt;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    bt = (ImageButton) findViewById(R.id.clickme);
    final MediaPlayer mp = MediaPlayer.create(this, R.raw.bird);
    bt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mp.start();
        }
    });
}

使用 MediaPlayer.seekto() 查找音频文件的开头。

ImageButton bt;
private MediaPlayer mp = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    bt = (ImageButton) findViewById(R.id.clickme);
    mp = MediaPlayer.create(this, R.raw.bird);
    bt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            if(mp.isPlaying()) {
                 mp.seekTo(0);
            } else {
                 mp.start();
            }
        }
    });
}

试试这个:

@Override
public void onClick(View v) {
    try {
        if (mp.isPlaying()) {
            mp.stop();
            mp.release();
            mp = MediaPlayer.create(context, R.raw.bird);
        }
        mp.start();
    } catch(Exception e) { 
        e.printStackTrace(); 
    }
}