Basically I have 3 songs, and I want the user to be able to loop back to the first song once the cycle of 3 songs is complete. Why won't this work? It will play all 3 songs, then on the fourth click, no song is played.
MediaPlayer song0, song1, song2;
Button play, next;
ArrayList<MediaPlayer> music = new ArrayList<MediaPlayer>();
int track = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
song0 = MediaPlayer.create(TheParty0Activity.this, R.raw.blacksunempire);
song1 = MediaPlayer.create(TheParty0Activity.this, R.raw.blueskies);
song2= MediaPlayer.create(TheParty0Activity.this, R.raw.fuckingnoise);
music.add(song0);
music.add(song1);
music.add(song2);
play = (Button) findViewById(R.id.button0);
next = (Button) findViewById(R.id.button1);
play.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
music.get(track).start();
}
});
next.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
music.get(track).stop();
track++;
if(track == 3)
track = 0;
music.get(track).start();
}
});
}
Call the function:
MediaPlayer.setLooping(true|false)
on the mediaplayerObject after you called MediaPlayer.prepare()
Example:
Uri mediaUri = createUri(context, R.raw.media); // Audiofile in raw folder
Mediaplayer mPlayer = new MediaPlayer();
mPlayer.setDataSource(context, mediaUri);
mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mPlayer.prepare();
mPlayer.setLooping(true);
mPlayer.start();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With