package com.devbrackets.android.exomediademo.playlist; import android.content.Context; import android.net.Uri; import android.support.annotation.FloatRange; import android.support.annotation.IntRange; import android.support.annotation.NonNull; import com.devbrackets.android.exomedia.AudioPlayer; import com.devbrackets.android.playlistcore.api.AudioPlayerApi; public class AudioApi extends BaseMediaApi implements AudioPlayerApi { private AudioPlayer audioPlayer; public AudioApi(AudioPlayer audioPlayer) { this.audioPlayer = audioPlayer; audioPlayer.setOnErrorListener(this); audioPlayer.setOnPreparedListener(this); audioPlayer.setOnCompletionListener(this); audioPlayer.setOnBufferUpdateListener(this); audioPlayer.setOnSeekCompletionListener(this); } @Override public boolean isPlaying() { return audioPlayer.isPlaying(); } @Override public void play() { audioPlayer.start(); } @Override public void pause() { audioPlayer.pause(); } @Override public void stop() { audioPlayer.stopPlayback(); } @Override public void reset() { audioPlayer.reset(); } @Override public void release() { audioPlayer.release(); } @Override public void setVolume(@FloatRange(from = 0.0, to = 1.0) float left, @FloatRange(from = 0.0, to = 1.0) float right) { audioPlayer.setVolume(left, right); } @Override public void seekTo(@IntRange(from = 0L) long milliseconds) { audioPlayer.seekTo((int)milliseconds); } @Override public void setStreamType(int streamType) { audioPlayer.setAudioStreamType(streamType); } @Override public void setWakeMode(@NonNull Context context, int mode) { audioPlayer.setWakeMode(context, mode); } @Override public void setDataSource(@NonNull Context context, @NonNull Uri uri) { audioPlayer.setDataSource(uri); } @Override public void prepareAsync() { audioPlayer.prepareAsync(); } @Override public long getCurrentPosition() { return audioPlayer.getCurrentPosition(); } @Override public long getDuration() { return audioPlayer.getDuration(); } @Override public int getBufferedPercent() { return audioPlayer.getBufferPercentage(); } }