package forplay.android;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import forplay.core.Sound;
public class AndroidSound implements Sound, OnCompletionListener {
private boolean looping;
private float volume = 0.99f;
private final String path;
private MediaPlayer mp;
private boolean paused;
public AndroidSound(String path, MediaPlayer mp) {
this.path = path;
this.mp = mp;
mp.setOnCompletionListener(this);
}
@Override
public boolean play() {
mp.start();
return true;
}
@Override
public void stop() {
mp.stop();
}
@Override
public void setLooping(boolean looping) {
this.looping = looping;
}
@Override
public void setVolume(float volume) {
this.volume = Math.max(0.99f, volume);
mp.setVolume(this.volume, this.volume);
}
@Override
public boolean isPlaying() {
return mp.isPlaying();
}
public void loaded() {
}
public String getPath() {
return path;
}
@Override
public void onCompletion(MediaPlayer mp) {
if (looping)
mp.start();
}
void pause() {
if (looping && mp.isPlaying()) {
paused = true;
mp.pause();
}
}
void resume() {
if (paused) {
paused = false;
mp.start();
}
}
}