Несколько медиаплееров в одном - PullRequest
0 голосов
/ 15 февраля 2019

Я создаю приложение для звуковой карты, и я добавил много экземпляров MediaPlayer в мой файл Java, чтобы запускать их каждый раз, когда я нажимаю CardView.Можно ли как-нибудь превратить их в один медиаплеер?

//Muziekje bingo
final MediaPlayer bingoMediaPlayer = MediaPlayer.create(this, R.raw.bingo);

final CardView bingo = (CardView) this.findViewById(R.id.play_bingo);

bingo.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        bingoMediaPlayer.start();
        bingo.setCardBackgroundColor(Color.parseColor("#707980"));
    }
});

bingoMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
    public void onCompletion(MediaPlayer mp) {
        bingo.setCardBackgroundColor(Color.parseColor("#b3bac0")); // finish current activity
    }
});

//muziekje harrypotter
final MediaPlayer harrypotterMediaPlayer = MediaPlayer.create(this, R.raw.harrypotter);

final CardView harrypotter = (CardView) this.findViewById(R.id.play_harrypotter);

harrypotter.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        harrypotterMediaPlayer.start();
        harrypotter.setCardBackgroundColor(Color.parseColor("#707980"));
    }
});


    harrypotterMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        public void onCompletion(MediaPlayer mp) {
            harrypotter.setCardBackgroundColor(Color.parseColor("#b3bac0")); // finish current activity
        }
    });

    //muziekje bibet
    final MediaPlayer bibetMediaPlayer = MediaPlayer.create(this, R.raw.bibet);

    final CardView bibet = (CardView) this.findViewById(R.id.play_bibet);

    bibet.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            bibetMediaPlayer.start();
            bibet.setCardBackgroundColor(Color.parseColor("#707980"));
        }
    });



    bibetMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        public void onCompletion(MediaPlayer mp) {
            bibet.setCardBackgroundColor(Color.parseColor("#b3bac0")); // finish current activity
        }
    });

1 Ответ

0 голосов
/ 15 февраля 2019

Вы можете написать функцию для воспроизведения соответствующего музыкального файла.Это поможет вам избавиться от стандартного кода.

public void playSound(int music) {
    //mContext will be your context here
    MediaPlayer.create(mContext, music).start();
}

И вы можете использовать эту функцию в своем коде следующим образом

bingo.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            playSound(R.raw.bingo);
            bingo.setCardBackgroundColor(Color.parseColor("#707980"));
         }
    });

harrypotter.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            playSound(R.raw.harrypotter);
            harrypotter.setCardBackgroundColor(Color.parseColor("#707980"));
        }
    });

Надеюсь, это поможет вам.

...