В моем приложении пользователь выбирает счет как 1, 21, 51, 101, 108, например, когда он выбирает с помощью кнопок или переключателя, медиаплеер имеет повторяться в определенное время. Если он выбирает 21, медиаплеер должен повторить воспроизведение музыки в 21 раз. В моем коде, если я использую цикл while внутри цикла for, он блокирует пользовательский интерфейс, не позволяя остановить или приостановить воспроизведение, если я не использовал цикл while, он воспроизводит только один раз. Пожалуйста, мне нужно решить, что любой из них будет оценен заранее. Ниже я отправляю весь мой кодповторить воспроизведение музыки определенное количество раз с использованием медиа-плеера для Android.
public class MainActivity extends Activity implements OnClickListener{
private MediaPlayer mp;
int count;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setVolumeControlStream(AudioManager.STREAM_MUSIC);
findViewById(R.id.button_1).setOnClickListener(this);
findViewById(R.id.button_2).setOnClickListener(this);
findViewById(R.id.button_3).setOnClickListener(this);
findViewById(R.id.button_4).setOnClickListener(this);
findViewById(R.id.button_5).setOnClickListener(this);
findViewById(R.id.pause).setOnClickListener(this);
findViewById(R.id.stop).setOnClickListener(this);
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.button_1:
if (mp!=null) {
mp.release();
}
player(3);
break;
case R.id.button_2:
if (mp!=null) {
mp.release();
}
player(21);
break;
case R.id.button_3:
if (mp!=null) {
mp.release();
}
player(51);
break;
case R.id.button_4:
if (mp!=null) {
mp.release();
}
player(108);
break;
case R.id.button_5:
if (mp!=null) {
mp.release();
}
break;
case R.id.pause:
mp.pause();
break;
case R.id.stop:
mp.stop();
break;
}
}
private void player(int count) {
// TODO Auto-generated method stub
mp = MediaPlayer.create(this, R.raw.a);
for (int i=1; i<=count ; i++){
mp.start();
while(mp.isPlaying());
}
// mp.release();
}
@Override
protected void onDestroy() {
if(null!=mp){
mp.release();
}
super.onDestroy();
}
}
где я хочу t o реализовать его в режиме создания или в состоянии переключения в моем коде. –
в способе плеера, в котором вы играете свою музыку –
OnCompletionListener не может быть решена ошибка наступает –