SDK的初始化流程参考SDK初始化的文档，此文档只针对`PlayVideoView`组件

基础功能参考`PlayVideoViewActivity`

完成功能参考`SpeedPlayActivity`

播放器配置信息查看`ConfigUtil`，默认功能全部开启，如果不需要可设置成false，则界面上不显示对应功能的按钮，开启后需要外部配合实现

```
public class ConfigUtil {
    /**
     * 是否展示竖屏/横屏小窗播放按钮
     */
    public static boolean SHOW_SMALL_WINDOW = true;
    /**
     * 是否展示录制gif按钮
     */
    public static boolean SHOW_CREATE_GIF = true;
    /**
     * 是否展示选集
     */
    public static boolean SHOW_SELECT_VIDEO = true;

    /**
     * 是否展示下一集按钮
     */
    public static boolean SHOW_NEXT_VIDEO = true;

    /**
     * 是否展示横屏输入弹幕和弹幕开关
     */
    public static boolean SHOW_LANDSCAPE_DAN_MU_LAYOUT = true;
    /**
     * 是否展示下载按钮
     */
    public static boolean SHOW_DOWNLOAD = true;
    /**
     * 是否展示网络检测按钮
     */
    public static boolean SHOW_CHECK_NETWORK = true;
    /**
     * 是否展示动态视频按钮
     */
    public static boolean SHOW_DYNAMIC_VIDEO = true;
    /**
     * 是否展示投屏按钮
     */
    public static boolean SHOW_PROJECTION = true;
}
```

###### 初始化播放器

```
    /**
     * 初始化播放器
     *
     * @param activity  Activity对象
     * @param videoData 视频数据
     */
    public void initPlayer(Activity activity, VideoData videoData) 
```

###### VideoData

```
    //视频id 不可为空
    private String videoId;
    //视频标题 不可为空
    private String videoTitle;
    //视频格式 可为空
    private String format;
    //是否是本地视频
    private boolean isLocalPlay;
    //验证码 可为空
    private String verificationCode;
    //在线logo 可为空
    private String logoUrl;
    //本地logo 可为空
    private String logoPath;
```



###### 设置控制器回调

```
    /**
     * 设置控制器回调
     *
     * @param playVideoViewControllerListener
     */
    public void setPlayVideoViewControllerListener(PlayVideoViewControllerListener playVideoViewControllerListener)
```

###### 控制器回调

```
/**
 * 控制器回调
 */
public abstract class PlayVideoViewControllerListener {
    /**
     * 点击了返回键
     */
    public void onClickBack() {
    }

    /**
     * 点击全屏按钮
     */
    public void onClickFullScreen() {
    }

    /**
     * 点击下一集
     */
    public void onClickNextVideo() {
    }

    /**
     * 点击知识点按钮
     */
    public void onClickKnowledge() {
    }

    /**
     * 点击选集
     */
    public void onClickSelectVideo() {
    }

    /**
     * 点击gif录制
     */
    public void onClickCreateGif() {
    }

    /**
     * 点击小窗播放
     */
    public void onClickSmallWindowPlay() {
    }

    /**
     * 点击发送弹幕
     */
    public void onClickSendDanMu() {
    }

    /**
     * 点击弹幕设置
     */
    public void onClickDanMuSetting() {
    }

    /**
     * 点击切换弹幕状态按钮
     */
    public void onClickDanMuStatus() {
    }

    /**
     * 弹幕进度跳转
     *
     * @param time 秒
     */
    public void seekToDanMu(long time) {
    }

    /**
     * 点击下载视频
     */
    public void downloadVideo() {
    }

    /**
     * 开始拖动进度条
     *
     * @param returnListenTime 拖动位置
     */
    public void onStartTrackingTouch(int returnListenTime) {
    }

    /**
     * 停止拖动进度条
     *
     * @param stopPosition 拖动位置
     */
    public void onStopTrackingTouch(int stopPosition) {
    }

    /**
     * 是否在展示答题控件
     */
    public boolean isShowChoiceRoot() {
        return false;
    }

    /**
     * 点击播放/暂停按钮
     *
     * @param pause true 暂停 false 播放
     */
    public void playOrPauseVideo(boolean pause) {
    }
}
```

###### 设置播放器回调

```
	 /**
     * 设置播放器回调
     *
     * @param playVideoViewListener
     */
    public void setPlayVideoViewListener(PlayVideoViewListener playVideoViewListener) 
```

###### 播放器回调

```
/**
 * 播放器回调
 */
public abstract class PlayVideoViewListener {
    /**
     * 播放器准备完成
     *
     * @param videoHeight 视频高
     * @param videoWidth  视频宽
     */
    public void onPrepared(int videoHeight, int videoWidth) {
    }

    /**
     * 当前播放位置
     *
     * @param currentPosition 播放位置 毫秒
     */
    public void onTimeChange(long currentPosition) {
    }

    /**
     * 跳转完成
     */
    public void onSeekComplete() {
    }

    /**
     * 缓冲开始
     */
    public void onBufferStart() {
    }

    /**
     * 缓冲结束
     */
    public void onBufferEnd() {
    }

    /**
     * 播放异常
     */
    public void onError(int what, int i1) {
    }

    /**
     * 播放完成
     */
    public void onCompletion() {
    }
}
```

##### 设置播放信息

```
    /**
     * 设置播放信息，用于切换视频时更新播放信息
     *
     * @param videoId    视频id
     * @param videoTitle 视频标题
     */
    public void setVideoInfo(String videoId, String videoTitle) {
        this.videoId = videoId;
        this.videoTitle = videoTitle;
    }
```

###### 开始播放本地视频

```
	 /**
     * 开始播放本地视频
     */
    public void playLocalVideo()
```

###### 开始播放在线视频

```
    /**
     * 播放音视频
     *
     * @param isAudioMode 是否是音频模式
     * @param isResetPos  是否重置当前记录播放的位置
     */
    public void playVideoOrAudio(boolean isAudioMode, boolean isResetPos)
```

###### 播放器是否已经准备完成

```
    /**
     * 播放器是否已经准备完成
     *
     */
    public boolean isPrepared()
```

###### 设置播放按钮状态

```
    /**
     * 设置播放按钮状态
     *
     * @param isPause true 暂停状态 false 播放壮体啊
     */
    public void setPlayBtnStatus(boolean isPause)
```

###### 暂停播放

```
    /**
     * 暂停播放
     */
    public void pause()
```

###### 恢复播放

```
    /**
     * 恢复播放
     */
    public void start()
```

###### 销毁播放器

```
    /**
     * 销毁播放器
     */
    public void destroy()
```

