com.qihoo.videocloud

## Class QHVCPlayerPluginBak

- java.lang.Object
- - com.qihoo.livecloud.plugin.ILiveCloudPlugin
  - - com.qihoo.livecloud.plugin.ILiveCloudPluginEx
    - - com.qihoo.videocloud.QHVCPlayerPluginBak

- All Implemented Interfaces:
    LiveCloudPluginConstant

      public class QHVCPlayerPluginBak
      extends ILiveCloudPluginEx

  播放器so动态加载
  Created by LeiXiaojun on 2017/8/29.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class com.qihoo.livecloud.plugin.ILiveCloudPlugin

      `ILiveCloudPlugin.PluginCallback, ILiveCloudPlugin.PluginDownloadCallback, ILiveCloudPlugin.PluginDownloadListener`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `TYPE_DECODER` 多解码器版本 体积：大 支持格式：mp4/flv/m3u8/ 支持协议：http/rtmp/hls 支持容器：mp4/flv/m3u8/ts/avi/rm/rmvb/mkv/mov/... 解码器：H264/AAC 编码器：无
    `static java.lang.String` | `TYPE_DECODER_RECORD` 多解码器及支持录制功能版本 体积：大 支持协议：http/rtmp/hls 支持容器：mp4/flv/m3u8/ts/avi/rm/rmvb/mkv/mov/... 解码器：H264/AAC 编码器：H264/AAC
    `static java.lang.String` | `TYPE_NORMAL` 精简版播放器 体积：小 支持协议：http/rtmp/hls 支持容器：mp4/flv/m3u8/ts 解码器：H264/AAC 编码器：无
    `static java.lang.String` | `TYPE_RECORD` 支持录制功能播放器 体积：中等 支持协议：http/rtmp/hls 支持容器：mp4/flv/m3u8/ts 解码器：H264/AAC 编码器：H264/AAC
    `static java.lang.String` | `TYPE_SYSTEM` 系统播放器

    - ### Fields inherited from interface com.qihoo.livecloud.plugin.LiveCloudPluginConstant

      `DT_INSTALL, DT_UPDATE, ERROR_CANCEL, ERROR_CONFIG_DOWNLOAD_FAILED, ERROR_CONFIG_PARSE_FAILED, ERROR_DEPENDENT_PLUGIN_LOAD_FAILED, ERROR_DEPENDENT_PLUGIN_NOT_INSTALL, ERROR_INSTALL_RUNNING, ERROR_LOCAL_UPDATE_FAILED, ERROR_LOCAL_UPDATE_OLD_LOADED, ERROR_NO_SPACES, ERROR_NOT_INSTALL, ERROR_PLUGIN_DELETE_FAILED, ERROR_PLUGIN_LOAD_FAILED, ERROR_SUCCESS, ERROR_UNKNOWN, ERROR_ZIP_DOWNLOAD_FAILED, ERROR_ZIP_FILE_DISMATCH, ERROR_ZIP_MD5_DISMATCH, ERROR_ZIP_UNZIP_FAILED, TAG, V_2_0_1, V_2_0_2, V_2_0_9, V_2_1_1, V_2_2_0`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `backgroundInstallOrUpdatePlugin()` 将正在安装或升级的插件转入后台运行，安装或升级完成后不再触发原事件
    `void` | `cancelInstallOrUpdatePlugin()` 取消安装或升级插件
    `int` | `checkInstallOrUpdatePlugin(Context context, ILiveCloudPlugin.PluginCallback callback)` 安装或升级插件
    `int` | `checkInstallOrUpdatePlugin(Context context, ILiveCloudPlugin.PluginDownloadListener listener, ILiveCloudPlugin.PluginCallback callback)` 安装或升级插件
    `int` | `checkInstallPlugin(Context context, ILiveCloudPlugin.PluginCallback callback)` 安装插件
    `int` | `checkInstallPlugin(Context context, ILiveCloudPlugin.PluginDownloadListener listener, ILiveCloudPlugin.PluginCallback callback)` 安装插件（先安装或升级依赖的插件，成功后再安装或升级该插件）
    `void` | `checkUninstallPlugin()` 删除旧版本插件
    `void` | `checkUninstallPlugin(java.lang.String playerPluginType)` 删除旧版本插件
    `int` | `checkUpdatePlugin(Context context, ILiveCloudPlugin.PluginDownloadListener listener)` 升级插件，若新插件已下载，执行本地升级逻辑；否则后台静默下载新插件，待APP下次启动时再次执行本地升级逻辑 注意： 1.该接口需要在`ILiveCloudPlugin.setDefaultPluginInstalled(boolean)`接口后且`ILiveCloudPlugin.loadPlugin()`接口前调用 2.为避免插件下载占用网络带宽进而影响当前业务，建议设置`ILiveCloudPlugin.PluginDownloadListener`参数自行选择时机下载插件
    `static QHVCPlayerPluginBak` | `getInstance()`
    `java.lang.String` | `getPlayerPluginType()` 获取播放器插件类型
    `long` | `getPluginSize()` 获取插件大小
    `java.lang.String` | `getPluginVersion()` 获取插件版本号
    `java.lang.String` | `getTag()`
    `boolean` | `isDefaultPluginInstalled()` 检测是否自带插件
    `boolean` | `isPluginInstalled()` 检测插件是否已安装
    `boolean` | `isPluginInstalled(java.lang.String playerPluginType)` 检测插件是否已安装
    `boolean` | `isPluginLoaded()` 插件是否已加载
    `boolean` | `isPluginValid()` 插件是否有效，分两种情况（前提是依赖的插件必须同时有效）： 1.系统自带 2.动态下载且加载成功
    `int` | `loadPlugin()` 加载已安装的插件（先加载依赖的插件，成功后再加载该插件）
    `int` | `removePlugin()` 移除插件
    `int` | `removePlugin(java.lang.String playerPluginType)` 移除插件
    `void` | `setDefaultPluginInstalled(boolean defaultPluginInstalled)` 设置是否自带插件
    `void` | `setPlayerPluginType(java.lang.String playerPluginType)` 设置播放器插件类型，默认为标准版本 注意：该接口需要在`loadPlugin()`接口前调用方可生效

    - ### Methods inherited from class com.qihoo.livecloud.plugin.ILiveCloudPluginEx

      `setDependenciesPluginList`

    - ### Methods inherited from class com.qihoo.livecloud.plugin.ILiveCloudPlugin

      `setPluginDownloadListener`

    - ### Methods inherited from class java.lang.Object

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

- - ### Field Detail

    - #### TYPE_SYSTEM

          public static final java.lang.String TYPE_SYSTEM

      系统播放器
      See Also:
        Constant Field Values

    - #### TYPE_NORMAL

          public static final java.lang.String TYPE_NORMAL

      精简版播放器
      体积：小
      支持协议：http/rtmp/hls
      支持容器：mp4/flv/m3u8/ts
      解码器：H264/AAC
      编码器：无
      See Also:
        Constant Field Values

    - #### TYPE_RECORD

          public static final java.lang.String TYPE_RECORD

      支持录制功能播放器
      体积：中等
      支持协议：http/rtmp/hls
      支持容器：mp4/flv/m3u8/ts
      解码器：H264/AAC
      编码器：H264/AAC
      See Also:
        Constant Field Values

    - #### TYPE_DECODER

          public static final java.lang.String TYPE_DECODER

      多解码器版本
      体积：大
      支持格式：mp4/flv/m3u8/
      支持协议：http/rtmp/hls
      支持容器：mp4/flv/m3u8/ts/avi/rm/rmvb/mkv/mov/...
      解码器：H264/AAC
      编码器：无
      See Also:
        Constant Field Values

    - #### TYPE_DECODER_RECORD

          public static final java.lang.String TYPE_DECODER_RECORD

      多解码器及支持录制功能版本
      体积：大
      支持协议：http/rtmp/hls
      支持容器：mp4/flv/m3u8/ts/avi/rm/rmvb/mkv/mov/...
      解码器：H264/AAC
      编码器：H264/AAC
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getInstance

          public static QHVCPlayerPluginBak getInstance()

    - #### getPlayerPluginType

          public java.lang.String getPlayerPluginType()

      获取播放器插件类型
      Returns:
        播放器插件类型，参见`TYPE_NORMAL`等

    - #### setPlayerPluginType

          public void setPlayerPluginType(java.lang.String playerPluginType)

      设置播放器插件类型，默认为标准版本
      注意：该接口需要在`loadPlugin()`接口前调用方可生效
      Parameters:
        `playerPluginType` - 播放器插件类型，参见`TYPE_NORMAL`等

    - #### getTag

          public java.lang.String getTag()

      Overrides:
        `getTag` in class `ILiveCloudPlugin`

    - #### setDefaultPluginInstalled

          public void setDefaultPluginInstalled(boolean defaultPluginInstalled)

      Description copied from class: `ILiveCloudPlugin`
      设置是否自带插件
      Overrides:
        `setDefaultPluginInstalled` in class `ILiveCloudPluginEx`
      Parameters:
        `defaultPluginInstalled` - true自带，false不自带

    - #### isDefaultPluginInstalled

          public boolean isDefaultPluginInstalled()

      Description copied from class: `ILiveCloudPluginEx`
      检测是否自带插件
      Overrides:
        `isDefaultPluginInstalled` in class `ILiveCloudPluginEx`
      Returns:
        true自带，false不自带

    - #### isPluginInstalled

          public boolean isPluginInstalled()

      Description copied from class: `ILiveCloudPluginEx`
      检测插件是否已安装
      Overrides:
        `isPluginInstalled` in class `ILiveCloudPluginEx`
      Returns:
        true已安装，false未安装

    - #### isPluginInstalled

          public boolean isPluginInstalled(java.lang.String playerPluginType)

      检测插件是否已安装
      Parameters:
        `playerPluginType` - 播放器插件类型，参见`TYPE_NORMAL`等
      Returns:
        true已安装，false未安装

    - #### isPluginValid

          public boolean isPluginValid()

      Description copied from class: `ILiveCloudPluginEx`
      插件是否有效，分两种情况（前提是依赖的插件必须同时有效）：
      1.系统自带
      2.动态下载且加载成功
      Overrides:
        `isPluginValid` in class `ILiveCloudPluginEx`
      Returns:
        true有效，false无效

    - #### loadPlugin

          public int loadPlugin()

      Description copied from class: `ILiveCloudPluginEx`
      加载已安装的插件（先加载依赖的插件，成功后再加载该插件）
      Overrides:
        `loadPlugin` in class `ILiveCloudPluginEx`
      Returns:
        错误码，参见`LiveCloudPluginConstant.ERROR_UNKNOWN`等

    - #### isPluginLoaded

          public boolean isPluginLoaded()

      Description copied from class: `ILiveCloudPlugin`
      插件是否已加载
      Overrides:
        `isPluginLoaded` in class `ILiveCloudPlugin`
      Returns:
        true已加载，false未加载

    - #### getPluginVersion

          public java.lang.String getPluginVersion()

      Description copied from class: `ILiveCloudPlugin`
      获取插件版本号
      Overrides:
        `getPluginVersion` in class `ILiveCloudPlugin`
      Returns:
        已安装时返回版本号，否则返回NULL

    - #### checkUninstallPlugin

          public void checkUninstallPlugin()

      Description copied from class: `ILiveCloudPlugin`
      删除旧版本插件
      Overrides:
        `checkUninstallPlugin` in class `ILiveCloudPlugin`

    - #### checkUninstallPlugin

          public void checkUninstallPlugin(java.lang.String playerPluginType)

      删除旧版本插件
      Parameters:
        `playerPluginType` - 播放器插件类型，参见`TYPE_NORMAL`等

    - #### checkInstallOrUpdatePlugin

          public int checkInstallOrUpdatePlugin(Context context,
                                                ILiveCloudPlugin.PluginCallback callback)

      Description copied from class: `ILiveCloudPlugin`
      安装或升级插件
      Overrides:
        `checkInstallOrUpdatePlugin` in class `ILiveCloudPlugin`
      Parameters:
        `context` - context
        `callback` - 回调接口
      Returns:
        错误码，`LiveCloudPluginConstant.ERROR_INSTALL_RUNNING`表示插件正在后台安装或升级， `LiveCloudPluginConstant.ERROR_SUCCESS`表示插件开始安装或升级

    - #### checkInstallOrUpdatePlugin

          public int checkInstallOrUpdatePlugin(Context context,
                                                ILiveCloudPlugin.PluginDownloadListener listener,
                                                ILiveCloudPlugin.PluginCallback callback)

      Description copied from class: `ILiveCloudPlugin`
      安装或升级插件
      Overrides:
        `checkInstallOrUpdatePlugin` in class `ILiveCloudPlugin`
      Parameters:
        `context` - context
        `listener` - 下载监听接口，若业务方需要自行实现插件下载功能，需要实现该接口
        `callback` - 回调接口
      Returns:
        错误码，`LiveCloudPluginConstant.ERROR_INSTALL_RUNNING`表示插件正在后台安装或升级， `LiveCloudPluginConstant.ERROR_SUCCESS`表示插件开始安装或升级

    - #### checkInstallPlugin

          public int checkInstallPlugin(Context context,
                                        ILiveCloudPlugin.PluginCallback callback)

      Description copied from class: `ILiveCloudPlugin`
      安装插件
      Overrides:
        `checkInstallPlugin` in class `ILiveCloudPlugin`
      Parameters:
        `context` - context
        `callback` - 回调接口
      Returns:
        错误码，`LiveCloudPluginConstant.ERROR_INSTALL_RUNNING`表示插件正在后台安装或升级， `LiveCloudPluginConstant.ERROR_SUCCESS`表示插件开始安装或升级

    - #### checkInstallPlugin

          public int checkInstallPlugin(Context context,
                                        ILiveCloudPlugin.PluginDownloadListener listener,
                                        ILiveCloudPlugin.PluginCallback callback)

      Description copied from class: `ILiveCloudPluginEx`
      安装插件（先安装或升级依赖的插件，成功后再安装或升级该插件）
      Overrides:
        `checkInstallPlugin` in class `ILiveCloudPluginEx`
      Parameters:
        `context` - context
        `listener` - 下载监听接口，若业务方需要自行实现插件下载功能，需要实现该接口
        `callback` - 回调接口
      Returns:
        错误码，`LiveCloudPluginConstant.ERROR_INSTALL_RUNNING`表示插件正在后台安装或升级， `LiveCloudPluginConstant.ERROR_SUCCESS`表示插件开始安装或升级

    - #### checkUpdatePlugin

          public int checkUpdatePlugin(Context context,
                                       ILiveCloudPlugin.PluginDownloadListener listener)

      Description copied from class: `ILiveCloudPlugin`
      升级插件，若新插件已下载，执行本地升级逻辑；否则后台静默下载新插件，待APP下次启动时再次执行本地升级逻辑
      注意：
      1.该接口需要在`ILiveCloudPlugin.setDefaultPluginInstalled(boolean)`接口后且`ILiveCloudPlugin.loadPlugin()`接口前调用
      2.为避免插件下载占用网络带宽进而影响当前业务，建议设置`ILiveCloudPlugin.PluginDownloadListener`参数自行选择时机下载插件
      Overrides:
        `checkUpdatePlugin` in class `ILiveCloudPlugin`
      Parameters:
        `context` - context
        `listener` - 下载监听接口，若业务方需要自行实现插件下载功能，需要实现该接口
      Returns:
        错误码，参见`LiveCloudPluginConstant.ERROR_UNKNOWN`等

    - #### cancelInstallOrUpdatePlugin

          public void cancelInstallOrUpdatePlugin()

      Description copied from class: `ILiveCloudPlugin`
      取消安装或升级插件
      Overrides:
        `cancelInstallOrUpdatePlugin` in class `ILiveCloudPlugin`

    - #### backgroundInstallOrUpdatePlugin

          public void backgroundInstallOrUpdatePlugin()

      Description copied from class: `ILiveCloudPlugin`
      将正在安装或升级的插件转入后台运行，安装或升级完成后不再触发原事件
      Overrides:
        `backgroundInstallOrUpdatePlugin` in class `ILiveCloudPlugin`

    - #### removePlugin

          public int removePlugin()

      Description copied from class: `ILiveCloudPlugin`
      移除插件
      Overrides:
        `removePlugin` in class `ILiveCloudPlugin`
      Returns:
        错误码，参见`LiveCloudPluginConstant.ERROR_UNKNOWN`等

    - #### removePlugin

          public int removePlugin(java.lang.String playerPluginType)

      移除插件
      Parameters:
        `playerPluginType` - 播放器插件类型，参见`TYPE_NORMAL`等
      Returns:
        错误码，参见`LiveCloudPluginConstant.ERROR_UNKNOWN`等

    - #### getPluginSize

          public long getPluginSize()

      获取插件大小
      Overrides:
        `getPluginSize` in class `ILiveCloudPlugin`
      Returns:
        插件大小，单位Byte