package com.devbrackets.android.exomediademo.playlist;
import android.net.Uri;
import android.support.annotation.FloatRange;
import android.support.annotation.IntRange;
import android.support.annotation.NonNull;
import com.devbrackets.android.exomedia.ui.widget.VideoView;
import com.devbrackets.android.playlistcore.api.VideoPlayerApi;
public class VideoApi extends BaseMediaApi implements VideoPlayerApi {
private VideoView videoView;
public VideoApi(VideoView videoView) {
this.videoView = videoView;
videoView.setOnErrorListener(this);
videoView.setOnPreparedListener(this);
videoView.setOnCompletionListener(this);
videoView.setOnBufferUpdateListener(this);
videoView.setOnSeekCompletionListener(this);
}
@Override
public boolean isPlaying() {
return videoView.isPlaying();
}
@Override
public void play() {
videoView.start();
}
@Override
public void pause() {
videoView.pause();
}
@Override
public void stop() {
videoView.stopPlayback();
}
@Override
public void reset() {
videoView.reset();
}
@Override
public void release() {
videoView.release();
}
@Override
public void setVolume(@FloatRange(from = 0.0, to = 1.0) float left, @FloatRange(from = 0.0, to = 1.0) float right) {
videoView.setVolume(left + right / 2);
}
@Override
public void seekTo(@IntRange(from = 0L) long milliseconds) {
videoView.seekTo((int)milliseconds);
}
@Override
public void setDataSource(@NonNull Uri uri) {
videoView.setVideoURI(uri);
}
@Override
public long getCurrentPosition() {
return videoView.getCurrentPosition();
}
@Override
public long getDuration() {
return videoView.getDuration();
}
@Override
public int getBufferedPercent() {
return videoView.getBufferPercentage();
}
public VideoView getVideoView() {
return videoView;
}
}