如何在第一次点击时播放音频?
How to make audio play on first click?
我有两个问题。
我第一次点击 ImageView 时,没有播放音频。只有当我第二次单击 ImageView 时,音频才会播放。为了在第一次点击时播放音频,我必须更改或添加什么到我的代码中?
当我已经开始播放音频后再次点击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();
}
我有两个问题。
我第一次点击 ImageView 时,没有播放音频。只有当我第二次单击 ImageView 时,音频才会播放。为了在第一次点击时播放音频,我必须更改或添加什么到我的代码中?
当我已经开始播放音频后再次点击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();
}