com.bokecc.sdk.mobile.download

## 类 Downloader

- java.lang.Object
- - com.bokecc.sdk.mobile.download.Downloader

-     public class Downloader
      extends java.lang.Object

  视频下载

- - ### 字段概要

    字段
    限定符和类型 | 字段和说明
    --- | ---
    `static int` | `DOWNLOAD`
    `static int` | `FINISH`
    `static int` | `PAUSE`
    `static int` | `WAIT`

  - ### 构造器概要

    构造器
    构造器和说明
    `Downloader(java.io.File file, java.lang.String videoId, java.lang.String userId, java.lang.String apiKey, java.lang.String verificationCode)` Download构造器
    `Downloader(java.lang.String videoId, java.lang.String userId, java.lang.String apiKey, java.lang.String verificationCode)` 如果使用本构造方法，必须使用setFile()方法设置file，否则无法正常下载。
    `Downloader(java.lang.String downloadPath, java.lang.String fileName, java.lang.String videoId, java.lang.String userId, java.lang.String apiKey, java.lang.String verificationCode)`

  - ### 方法概要

    所有方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `void` | `cancel()` 取消下载
    `void` | `getDefinitionMap()` 获取视频清晰度列表。
    `int` | `getDownloadDefinition()` 获取当前设置的视频清晰度。
    `int` | `getStatus()` 获取当前下载状态
    `void` | `pause()` 暂停下载
    `void` | `reset()` 重置downloader，需要再次调用start()方法下载视频。
    `void` | `resume()` 恢复下载 注：此方法仅在Downloader处于PAUSE状态可用
    `void` | `setDownloadDefinition(int definition)` 设置想要下载的视频清晰度。
    `void` | `setDownloadListener(DownloadListener downloadListener)` 设置下载监听器
    `Downloader` | `setDownloadMode(MediaMode downloadMode)` 设置下载的模式，默认为视频
    `void` | `setDownloadRetryPeriod(long period)` 设置下载重试间隔，单位为毫秒
    `void` | `setDownloadSubtitle(java.lang.String downloadSubtitlePath, java.lang.String subtitleName, int subtitleModel)`
    `void` | `setFile(java.io.File file)` 设置下载文件
    `void` | `setHttps(boolean isHttps)`
    `void` | `setOnDownloadSubtitleListener(OnDownloadSubtitleListener onDownloadSubtitleListener)`
    `void` | `setOnProcessDefinitionListener(OnProcessDefinitionListener onProcessDefinitionListener)` 设置处理清晰度监听器
    `void` | `setPlayUrlProvider(PlayUrlProvider urlProvider)` 设置urlProvider
    `void` | `setReconnectLimit(int reconnectLimit)` 设置下载重试次数，默认为0，可设置区间[0, 100]
    `void` | `setTimeOut(int timeOut)` 设置网络请求的超时时间,区间[5000-30000]，单位为ms，默认值为10000ms
    `void` | `setToWaitStatus()` 终止downloader状态为wait状态
    `void` | `start()` 开始下载 注：此方法仅在Downloader处于WAIT状态下可用

    - ### 从类继承的方法 java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 字段详细资料

    - #### WAIT

          public static final int WAIT

      另请参阅:
        常量字段值

    - #### DOWNLOAD

          public static final int DOWNLOAD

      另请参阅:
        常量字段值

    - #### PAUSE

          public static final int PAUSE

      另请参阅:
        常量字段值

    - #### FINISH

          public static final int FINISH

      另请参阅:
        常量字段值

  - ### 构造器详细资料

    - #### Downloader

          public Downloader(java.lang.String videoId,
                            java.lang.String userId,
                            java.lang.String apiKey,
                            java.lang.String verificationCode)

      如果使用本构造方法，必须使用setFile()方法设置file，否则无法正常下载。

    - #### Downloader

          public Downloader(java.lang.String downloadPath,
                            java.lang.String fileName,
                            java.lang.String videoId,
                            java.lang.String userId,
                            java.lang.String apiKey,
                            java.lang.String verificationCode)

      参数:
        `downloadPath` - 下载路径
        `fileName` - 文件名
        `videoId` - 视频ID
        `userId` - UserId
        `apiKey` - ApiKey
        `verificationCode` - 授权验证码，没有开通授权验证功能的账号，此处填null

    - #### Downloader

          public Downloader(java.io.File file,
                            java.lang.String videoId,
                            java.lang.String userId,
                            java.lang.String apiKey,
                            java.lang.String verificationCode)

      Download构造器
      参数:
        `file` - 文件的后缀由用户根据是否开通drm来确认，如果开通了drm，则用户生成file的时候需要加上.pcm的后缀，否则是.mp4的后缀
        `videoId` - videoId
        `userId` - userId
        `apiKey` - apiKey
        `verificationCode` - verificationCode

  - ### 方法详细资料

    - #### setFile

          public void setFile(java.io.File file)

      设置下载文件
      参数:
        `file` - file

    - #### setDownloadListener

          public void setDownloadListener(DownloadListener downloadListener)

      设置下载监听器
      参数:
        `downloadListener` - downloadListener

    - #### setOnProcessDefinitionListener

          public void setOnProcessDefinitionListener(OnProcessDefinitionListener onProcessDefinitionListener)

      设置处理清晰度监听器
      参数:
        `onProcessDefinitionListener` - onProcessDefinitionListener

    - #### getStatus

          public int getStatus()

      获取当前下载状态

    - #### start

          public void start()

      开始下载

      注：此方法仅在Downloader处于WAIT状态下可用

    - #### pause

          public void pause()

      暂停下载

    - #### resume

          public void resume()

      恢复下载 注：此方法仅在Downloader处于PAUSE状态可用

    - #### cancel

          public void cancel()

      取消下载

    - #### setDownloadRetryPeriod

          public void setDownloadRetryPeriod(long period)

      设置下载重试间隔，单位为毫秒

    - #### getDefinitionMap

          public void getDefinitionMap()

      获取视频清晰度列表。 注：需要实现OnProcessDefinitionListener的onProcessDefinition()方法来获得返回的清晰度字典

    - #### reset

          public void reset()

      重置downloader，需要再次调用start()方法下载视频。

    - #### setToWaitStatus

          public void setToWaitStatus()

      终止downloader状态为wait状态

    - #### setDownloadDefinition

          public void setDownloadDefinition(int definition)

      设置想要下载的视频清晰度。
      参数:
        `definition` - definition

    - #### getDownloadDefinition

          public int getDownloadDefinition()

      获取当前设置的视频清晰度。
      返回:
        quality，如果没有设置则返回null

    - #### setHttps

          public void setHttps(boolean isHttps)

    - #### setTimeOut

          public void setTimeOut(int timeOut)

      设置网络请求的超时时间,区间[5000-30000]，单位为ms，默认值为10000ms
      参数:
        `timeOut` - timeOut

    - #### setReconnectLimit

          public void setReconnectLimit(int reconnectLimit)

      设置下载重试次数，默认为0，可设置区间[0, 100]
      参数:
        `reconnectLimit` - reconnectLimit

    - #### setDownloadMode

          public Downloader setDownloadMode(MediaMode downloadMode)

      设置下载的模式，默认为视频
      参数:
        `downloadMode` -

    - #### setPlayUrlProvider

          public void setPlayUrlProvider(PlayUrlProvider urlProvider)

      设置urlProvider
      参数:
        `urlProvider` - urlProvider

    - #### setOnDownloadSubtitleListener

          public void setOnDownloadSubtitleListener(OnDownloadSubtitleListener onDownloadSubtitleListener)

      参数:
        `onDownloadSubtitleListener` - 下载字幕监听

    - #### setDownloadSubtitle

          public void setDownloadSubtitle(java.lang.String downloadSubtitlePath,
                                          java.lang.String subtitleName,
                                          int subtitleModel)

      参数:
        `downloadSubtitlePath` - 字幕保存路径
        `subtitleName` - 字幕名称
        `subtitleModel` - 字幕字体模式