我正在Android上简化它,它具有5个图像和5个音频声音,我为它们两个创建了单独的数组。我想要当我单击下一个按钮时出现R.drawable.anp1
图像并产生R.raw.q1
声音,并且再次当我单击下一个按钮时出现R.drawable.anp2
图像并产生R.raw.q2 sound
。在这种情况下,我的图像阵列可以按照我的要求正常工作,但是问题是我的音频无法正常工作,我的下一个按钮音频工作正常,但是当我返回到上一个按钮时,它会首先产生下一个按钮声音,然后进入上一个。
我想要image1=sound1
,image2=sound2
,image3=sound3
,但问题是当我单击“上一步”按钮时,其外观类似于image2=sound3
,image1=sound2
第二,另一个问题是,当一个循环完成时,它将所有声音静音,为什么?
如果您知道任何方法,任何if-else或Switch-case逻辑,请回复我,我们将不胜感激。这是我的代码:
public class Parandegan extends AppCompatActivity {
private ImageView hImageViewPic;
private Button iButton,gButton;
MediaPlayer ourSong;
private int currentImage = 0;
public int currentAudio = 0;
int[] images = { R.drawable.anp1, R.drawable.anp2, R.drawable.anp3, R.drawable.anp4, R.drawable.anp5 };
int[] audios = { R.raw.q1, R.raw.q2, R.raw.q3, R.raw.q4, R.raw.q5 };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_parandegan);
hImageViewPic = findViewById(R.id.idImageViewPic);
iButton = findViewById(R.id.bIleri);
gButton = findViewById(R.id.bGeri);
iButton.setOnClickListener(iButtonChangeImageListener);
gButton.setOnClickListener(gButtonChangeImageListener); }
View.OnClickListener iButtonChangeImageListener = new View.OnClickListener() {
public void onClick(View v) {
try {
currentImage++;
currentImage = currentImage % images.length;
hImageViewPic.setImageResource(images[currentImage]);
ourSong = MediaPlayer.create(Parandegan.this,audios[currentAudio]);
currentAudio++;
ourSong.start();
}
catch (Exception e)
{
}
} };
View.OnClickListener gButtonChangeImageListener = new View.OnClickListener() {
public void onClick(View v) {
try {
currentImage--;
currentImage = (currentImage + images.length) % images.length;
hImageViewPic.setImageResource(images[currentImage]);
MediaPlayer.create(Parandegan.this,audios[currentAudio]);
currentAudio--;
ourSong.start();
}
catch (Exception e)
{
}
} };
protected void onPause() {
super.onPause();
ourSong.release();
finish();
}
}