package com.uw.ictd.respeak;
import android.content.Context;
import android.media.MediaPlayer;
import android.net.Uri;
public class AudioPlayer {
private MediaPlayer mPlayer;
private int DEFAULT_RECORDING = R.raw.gaetano_lecture; // TODO: change default later
// Recording chosen by user to be played
private Uri mRecording;
protected AudioPlayer() {
}
protected AudioPlayer(Uri uri) {
mRecording = uri;
}
public void stop() {
if (mPlayer != null) {
mPlayer.reset();
mPlayer.release();
mPlayer = null;
}
}
public void pause() {
if (mPlayer != null) {
mPlayer.pause();
}
}
public void play(Context c) {
if (mPlayer == null) {
// Checks if a recording has been chosen by the user and creates the appropriate player
if (mRecording == null) {
mPlayer = MediaPlayer.create(c, DEFAULT_RECORDING);
} else {
mPlayer = MediaPlayer.create(c, mRecording);
}
mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
stop();
}
});
mPlayer.start();
} else if (mPlayer.isPlaying()) {
mPlayer.pause();
} else {
mPlayer.start();
}
}
public boolean isPlaying() {
if (mPlayer == null) {
return false;
} else {
return mPlayer.isPlaying();
}
}
public Uri getUri() {
return mRecording;
}
public long getDuration() {
if (mPlayer != null) {
return mPlayer.getDuration();
} else {
return -1;
}
}
public long getCurrentPosition() {
if (mPlayer != null) {
return mPlayer.getCurrentPosition();
} else {
return -1;
}
}
public void seekTo(int currentPosition) {
if (mPlayer != null) {
mPlayer.seekTo(currentPosition);
}
}
}