如何在第一次点击时播放音频?

How to make audio play on first click?

我有两个问题。

  1. 我第一次点击 ImageView 时,没有播放音频。只有当我第二次单击 ImageView 时,音频才会播放。为了在第一次点击时播放音频,我必须更改或添加什么到我的代码中?

  2. 当我已经开始播放音频后再次点击ImageView时,如果我想再次播放,我必须等待音频结束。我必须在我的代码中添加什么才能在每次点击时重新启动音频,即使音频正在播放?

代码:

public void next (View view){

    ImageView one = (ImageView)this.findViewById(R.id.Seethrough);
    final MediaPlayer mp = MediaPlayer.create(this, R.raw.dry);
    one.setOnClickListener(new View.OnClickListener(){

        public void onClick(View v) {
            mp.start();
        }
    });
}

<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:src="@drawable/seethrough"
    android:clickable="true"
    android:id="@+id/Seethrough"
    android:onClick="next"
    />

您在 xml 属性中设置 android:onClick,这将调用您的 next 方法,然后您在 next 中再次 setOnClickListener,因此第一次单击 imageView 时,mp.start() 不会被调用。

MediaPlayer mp = null;

public void next (View view) {
    if (mp != null) {
        mp.stop();
        mp.release();
    }
    mp = MediaPlayer.create(this, R.raw.dry);
    mp.start();
}