//package cn.jzvd.demo.CustomPlayer;
//
//import android.content.res.AssetFileDescriptor;
//import android.media.AudioManager;
//import android.media.MediaPlayer;
//import android.media.PlaybackParams;
//import android.os.Build;
//import android.support.annotation.RequiresApi;
//import android.view.Surface;
//
//import cn.jzvd.JZMediaInterface;
//import cn.jzvd.JzvdMgr;
//
///**
// * Created by Nathen on 2017/11/23.
// */
//public class CustomMediaPlayerAssertFolder extends JZMediaInterface implements MediaPlayer.OnPreparedListener, MediaPlayer.OnCompletionListener, MediaPlayer.OnBufferingUpdateListener, MediaPlayer.OnSeekCompleteListener, MediaPlayer.OnErrorListener, MediaPlayer.OnInfoListener, MediaPlayer.OnVideoSizeChangedListener {
//
//    public MediaPlayer mediaPlayer;
//
//    @Override
//    public void start() {
//        mediaPlayer.start();
//    }
//
//    @Override
//    public void prepare() {
//        try {
//            mediaPlayer = new MediaPlayer();
//            mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
//            mediaPlayer.setOnPreparedListener(CustomMediaPlayerAssertFolder.this);
//            mediaPlayer.setOnCompletionListener(CustomMediaPlayerAssertFolder.this);
//            mediaPlayer.setOnBufferingUpdateListener(CustomMediaPlayerAssertFolder.this);
//            mediaPlayer.setScreenOnWhilePlaying(true);
//            mediaPlayer.setOnSeekCompleteListener(CustomMediaPlayerAssertFolder.this);
//            mediaPlayer.setOnErrorListener(CustomMediaPlayerAssertFolder.this);
//            mediaPlayer.setOnInfoListener(CustomMediaPlayerAssertFolder.this);
//            mediaPlayer.setOnVideoSizeChangedListener(CustomMediaPlayerAssertFolder.this);
//
//            AssetFileDescriptor assetFileDescriptor = (AssetFileDescriptor) jzDataSource.getCurrentUrl();
//            mediaPlayer.setDataSource(assetFileDescriptor.getFileDescriptor(), assetFileDescriptor.getStartOffset(), assetFileDescriptor.getLength());
//
//            mediaPlayer.prepareAsync();
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//
//    @Override
//    public void pause() {
//        mediaPlayer.pause();
//    }
//
//    @Override
//    public boolean isPlaying() {
//        return mediaPlayer.isPlaying();
//    }
//
//    @Override
//    public void seekTo(long time) {
//        mediaPlayer.seekTo((int) time);
//    }
//
//    @Override
//    public void release() {
//        if (mediaPlayer != null)
//            mediaPlayer.release();
//    }
//
//    @Override
//    public long getCurrentPosition() {
//        if (mediaPlayer != null) {
//            return mediaPlayer.getCurrentPosition();
//        } else {
//            return 0;
//        }
//    }
//
//    @Override
//    public long getDuration() {
//        if (mediaPlayer != null) {
//            return mediaPlayer.getDuration();
//        } else {
//            return 0;
//        }
//    }
//
//    @Override
//    public void setSurface(Surface surface) {
//        mediaPlayer.setSurface(surface);
//    }
//
//    @Override
//    public void setVolume(float leftVolume, float rightVolume) {
//        mediaPlayer.setVolume(leftVolume, rightVolume);
//    }
//
//    @RequiresApi(api = Build.VERSION_CODES.M)
//    @Override
//    public void setSpeed(float speed) {
//        PlaybackParams pp = mediaPlayer.getPlaybackParams();
//        pp.setSpeed(speed);
//        mediaPlayer.setPlaybackParams(pp);
//    }
//
//    @Override
//    public void onPrepared(MediaPlayer mediaPlayer) {
//        mediaPlayer.start();
//        if (jzDataSource.getCurrentUrl().toString().toLowerCase().contains("mp3")) {
//            JZMediaPlayer.instance().mainThreadHandler.post(() -> {
//                if (JzvdMgr.getCurrentJzvd() != null) {
//                    JzvdMgr.getCurrentJzvd().onPrepared();
//                }
//            });
//        }
//    }
//
//    @Override
//    public void onCompletion(MediaPlayer mediaPlayer) {
//        JZMediaPlayer.instance().mainThreadHandler.post(() -> {
//            if (JzvdMgr.getCurrentJzvd() != null) {
//                JzvdMgr.getCurrentJzvd().onAutoCompletion();
//            }
//        });
//    }
//
//    @Override
//    public void onBufferingUpdate(MediaPlayer mediaPlayer, final int percent) {
//        JZMediaPlayer.instance().mainThreadHandler.post(() -> {
//            if (JzvdMgr.getCurrentJzvd() != null) {
//                JzvdMgr.getCurrentJzvd().setBufferProgress(percent);
//            }
//        });
//    }
//
//    @Override
//    public void onSeekComplete(MediaPlayer mediaPlayer) {
//        JZMediaPlayer.instance().mainThreadHandler.post(() -> {
//            if (JzvdMgr.getCurrentJzvd() != null) {
//                JzvdMgr.getCurrentJzvd().onSeekComplete();
//            }
//        });
//    }
//
//    @Override
//    public boolean onError(MediaPlayer mediaPlayer, final int what, final int extra) {
//        JZMediaPlayer.instance().mainThreadHandler.post(() -> {
//            if (JzvdMgr.getCurrentJzvd() != null) {
//                JzvdMgr.getCurrentJzvd().onError(what, extra);
//            }
//        });
//        return true;
//    }
//
//    @Override
//    public boolean onInfo(MediaPlayer mediaPlayer, final int what, final int extra) {
//        JZMediaPlayer.instance().mainThreadHandler.post(() -> {
//            if (JzvdMgr.getCurrentJzvd() != null) {
//                if (what == MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START) {
//                    JzvdMgr.getCurrentJzvd().onPrepared();
//                } else {
//                    JzvdMgr.getCurrentJzvd().onInfo(what, extra);
//                }
//            }
//        });
//        return false;
//    }
//
//    @Override
//    public void onVideoSizeChanged(MediaPlayer mediaPlayer, int width, int height) {
//        JZMediaPlayer.instance().mainThreadHandler.post(() -> {
//            if (JzvdMgr.getCurrentJzvd() != null) {
//                JzvdMgr.getCurrentJzvd().onVideoSizeChanged(width, height);
//            }
//        });
//    }
//}
