Java 如何使按钮播放特定索引的声音
所以我正在创建一个程序,在每次点击按钮时播放特定的声音。我已经创建了一个歌曲数组,但是当我运行程序时,所有的按钮都会播放数组中的第一个声音。我试图让按钮播放特定索引的声音,下面是我的代码Java 如何使按钮播放特定索引的声音,java,android,Java,Android,所以我正在创建一个程序,在每次点击按钮时播放特定的声音。我已经创建了一个歌曲数组,但是当我运行程序时,所有的按钮都会播放数组中的第一个声音。我试图让按钮播放特定索引的声音,下面是我的代码 public class MainActivity extends AppCompatActivity implements View.OnClickListener { int[] songs = {R.raw.doyouspeakenglish, R.raw.goodevening, R.raw.
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
int[] songs = {R.raw.doyouspeakenglish, R.raw.goodevening, R.raw.hello};
MediaPlayer mediaPlayer;
int current_index = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mediaPlayer = MediaPlayer.create(this, songs[current_index]);
Button button1 = findViewById(R.id.button1);
Button button2 = findViewById(R.id.button2);
Button button3 = findViewById(R.id.button3);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
current_index =0;
mediaPlayer.start();
break;
case R.id.button2:
current_index = 1;
mediaPlayer.start();
case R.id.button3:
current_index = 2;
mediaPlayer.start();
break;
}
}
}
您将获得MediaPlayer的第一个声音。因此,当您的活动正在创建时,它只在
onCreate
方法中放置声音,该方法只调用一次
您需要放置mediaPlayer=mediaPlayer.create(这是歌曲[current_index])代码>内部onClick
方法
因此,您的onClick
方法将看起来像这样:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
current_index =0;
break;
case R.id.button2:
current_index = 1;
case R.id.button3:
current_index = 2;
break;
}
mediaPlayer = MediaPlayer.create(this, songs[current_index]);
mediaPlayer.start();
}