0
// Will need this in the callbacks 
final AssetFileDescriptor afd = getResources().openRawResourceFd(R.raw.sample);
 
// Build and start first player 
final MediaPlayer player1 = MediaPlayer.create(this, R.raw.sample);
player1.start(); 
 
// Ready second player 
final MediaPlayer player2 = MediaPlayer.create(this, R.raw.sample);
player1.setNextMediaPlayer(player2); 
 
player1.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
    @Override 
    public void onCompletion(MediaPlayer mediaPlayer) {
 
        // When player1 completes, we reset it, and set up player2 to go back to player1 when it's done 
        mediaPlayer.reset();
        try { 
            mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
            mediaPlayer.prepare();
        } catch (Exception e) {
            e.printStackTrace();
        } 
 
        player2.setNextMediaPlayer(player1);
    } 
}); 
player2.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
    @Override 
    public void onCompletion(MediaPlayer mediaPlayer) {
        // Likewise, when player2 completes, we reset it and tell it player1 to user player2 after it's finished again 
        mediaPlayer.reset();
        try { 
            mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
            mediaPlayer.prepare();
        } catch (Exception e) {
            e.printStackTrace();
        } 
 
        player1.setNextMediaPlayer(player2);
    } 
}); 
 
// This loop repeats itself endlessly in this fashion without gaps 

This is the only way i found to loop an audio file without any gaps and everything works fine. But after it completes 10-15 loops randomly, Mediaplayer shows different errors each time and stops playing the audio. tried with different audio with different encoding type different file format everything but i get the different same errors randomly. Thanks in advance.

E/MediaPlayer(24311): error (1, -38)

E/MediaPlayer(23256): Error(1,-1007)

E/MediaPlayer(23546): Error (1,-2147483648)

Community
  • 1
  • 1
Sai
  • 15,188
  • 20
  • 81
  • 121

1 Answers1

-1

it is most likely a garbage collection issue, because you are resetting you media players so many times. The way you are repeating sound is a pretty hacky way. i wouldn't really suggest doing it that way, although i have heard that the set looping does cause gaps when looping with certain file types. have you tried formatting your file as ogg?

Tomer Shemesh
  • 10,278
  • 4
  • 21
  • 44