Помогите последовательно воспроизвести медиафайлы

Сразу запускаются все медиафайлы, а не последовательно(должно запустится 5 аудиофайлов, а за ними еще 2 раза по 5), но запускаются сразу 3 Не получается запустить всё последовательно помогите пожалуйста разобраться Без while всё работает последоватльно

while (a<3) {

                         CreateRandom();
                         StartMedia();
                         a++;
                     }

public void StartMedia(){

    mediaPlayer.start();
    mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            mediaPlayer1.start();
        }
    });
    mediaPlayer1.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            mediaPlayer2.start();
        }
    });
    mediaPlayer2.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            mediaPlayer3.start();
        }
    });

    mediaPlayer3.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            mediaPlayer4.start();
        }
    });
}

Ответы (1 шт):

Автор решения: Mister Sonoli

Вместе трёх раз решил сделать вот так, функция будет запускаться до определенного действия Возможно криво и неправильно, но приложение работает и не вылетает

 public void StartMedia(){


    mediaPlayer.start();
    mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            mediaPlayer1.start();
        }
    });
    mediaPlayer1.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            mediaPlayer2.start();
        }
    });
    mediaPlayer2.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            mediaPlayer3.start();
        }
    });

    mediaPlayer3.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            mediaPlayer4.start();
        }
    });

    mediaPlayer4.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            stopSounds();
            CreateRandom();
            StartMedia();
        }
    });
}
→ Ссылка