Есть такой метод:
public void play_sound_car(int sound_id){
Toast.makeText(context, "Значение: "+String.valueOf(sound_id), Toast.LENGTH_SHORT).show();
if (sound_id == 1) {
mySong = MediaPlayer.create(context, R.raw.one);
mySong.start();
}
if (sound_id == 2){
mySong = MediaPlayer.create(context, R.raw.two);
mySong.start();
}
}
Вызывается классом, который читает значение firebase'а:
id_sound_car.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String id_sound = String.valueOf(dataSnapshot.getValue());
int track_name = Integer.valueOf(id_sound);
Toast.makeText(contextx, String.valueOf(track_name), Toast.LENGTH_SHORT).show();
playsounds.play_sound_car(track_name);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
И почему-то MediaPlayer очень много раз начинает проигрывать один и тот же файл. Причём toast показывается один раз.
Как мне сделать так, чтобы музыка проигрывалась только тогда, когда изменяется значение, причём если она уже играет - то прежний трэк останавливался, а новый начинался?
Сборка персонального компьютера от Artline: умный выбор для современных пользователей