Try to handle MediaPlayer errors

This commit is contained in:
Christopher Eby 2010-02-21 19:57:54 -06:00
parent 44ebddbc14
commit 32be8b09ef

View File

@ -33,7 +33,7 @@ import android.util.Log;
import android.widget.RemoteViews;
import android.widget.Toast;
public class PlaybackService extends Service implements Runnable, MediaPlayer.OnCompletionListener, SharedPreferences.OnSharedPreferenceChangeListener {
public class PlaybackService extends Service implements Runnable, MediaPlayer.OnCompletionListener, MediaPlayer.OnErrorListener, SharedPreferences.OnSharedPreferenceChangeListener {
private static final int NOTIFICATION_ID = 2;
public static final int STATE_NORMAL = 0;
@ -348,6 +348,7 @@ public class PlaybackService extends Service implements Runnable, MediaPlayer.On
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setWakeMode(this, PowerManager.PARTIAL_WAKE_LOCK);
mMediaPlayer.setOnCompletionListener(this);
mMediaPlayer.setOnErrorListener(this);
retrieveSongs();
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
@ -478,6 +479,14 @@ public class PlaybackService extends Service implements Runnable, MediaPlayer.On
mHandler.sendEmptyMessage(RELEASE_WAKE_LOCK);
}
public boolean onError(MediaPlayer player, int what, int extra)
{
Log.e("VanillaMusic", "MediaPlayer error: " + what + " " + extra);
mMediaPlayer.reset();
mHandler.sendEmptyMessage(TRACK_CHANGED);
return true;
}
private Song randomSong()
{
return new Song(mSongs[mRandom.nextInt(mSongs.length)]);