会员对外文档平台 会员对外文档平台
登录
接口
介绍
  • TOB直充接口

    • 订单直充接口
    • 合作方领取三方商品权益接口
    • 订单状态查询接口
    • 订单直充接口 (RSA加密版)
    • 购买校验接口
    • 网吧账号创建接口
  • TOB激活码直充接口

  • OTT直充接口

  • OTT自动续费接口

  • OTT激活码直充接口

  • 通用接口

  • 内容点播接口

  • 卡券类接口

  • 用户信息接口

  • 会员福利接口

  • 合作方客户FV管理

# sdk集成方法

# SDK集成及调用方法简介

该篇主要介绍在下载好demo之后,开发相关Api,集成SDK并安装、测试的相关步骤。

# SDKDemo下载

android依赖:implementation (name:'library-release',ext:'aar')

aar和demo:下载地址 (opens new window)

# sdk集成主要步骤

SDK集成主要是将爱奇艺SDK集成到第三方播放APP中。图示如下: sdk流程图

调用详细步骤,可参考上图阅读

  1. 清单文件添加必要权限:

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    

    如果apk应用目标版本是6.0及以上出现权限适配问题,需自行添加动态权限尝试解决。

  2. 添加gradle依赖

    • app.gradle添加依赖: implementation (name:’library-release’,ext:’aar’) implementation ‘com.google.code.gson:gson:2.8.5’ implementation “org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.31”
    • 工程gradle添加依赖: classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.31”
  3. 获取MovieSdk实例(多种构造器,建议使用有回调的),调用系统初始化接口,建议在应用启动application开始调用,内部进行一系列注册校验流程: MovieSdk moviesdk=MovieSdk.init(getApplication,host,listener);

    方法调用详情见《sdk调用方法说明及示例》。

  4. 新建播放显示playView(必须包含surfaceview),继承自PlayerView,实现getSurfaceViewId和 getLayoutId方法,分别指定surfaceView的id及布局文件的id; 参考TestView,构造方法:TestView(this, moviePlayEntity, this);

    方法调用详情见《sdk调用方法说明及示例》。

  5. 新建播放页,之后setContentView(playView),实现OnPlayerStateChangeListener接口,得到播放状态回调方法,在相应的方法中进行不同播放状态的界面更新,参考PlayerActivity;

    回调方法见《sdk调用方法说明及示例》。

  6. 在onCreate及OnDestory中分别回调playView的onCreate和onDestory方法进行资源初始化及销毁回收;

如果不回收可能存在播放问题;

  1. 通过新建的视图获取播放控制对象,如果视图为testView,则调用方式为:PlayContract.Presenter playController=testView.getPlayImp();播放,暂停,恢复,快进,停止等相关控制操作;

    方法详情见《sdk调用方法说明及示例》。

  2. 设置适应影片原始比例的方式为: 设置doSetPlayerSize为true。

# sdk调用方法说明及示例

code 说明
403 身份标识不合法
400 请求参数有误,请求失败
500 请求服务器数据获取失败
200 返回JSON数据

Note: 设备deviceId作为权益校验的标识,一般情况不会变化,但业务方应尽量保存deviceId和设备的信息关系(比如mac地址等)以便出现问题后的维护;如果出现卸载或格式化设备等其他操作导致的devceId发生变化,可以联系客服人员协助换绑设备权益;

# 1 用户注册方法:

系统初始化方法,建议在应用启动application开始调用,内部进行一系列注册校验流程;为确保初始化成功,确认本地ping服务器host网络正常;

  • 请求方法:

    方法一:MovieSdk movieSdk =MovieSdk init(Context applicationContext,String host,OnInitListener initListener) (**设置初始化完成回调接口,推荐实现方式**) 方法二:MovieSdk movieSdk =MovieSdk init(Context applicationContext,String host,int netType,OnInitListener initListener)(手动设置网络类型,针对部分有无线有线网络混用的情况)

  • 参数:

参数名 必选 类型 说明
Context 是 Context 上下文
host 是 string 本地服务器ip(即为本地服务器ip)
initListener 是 OnInitListener 初始化完成回调
netType 否 int 有线接口: 1无线接口: 2 默认是0,就是按照原来的逻辑,获取当前连接的接口的mac地址
  • 返回示例
 {      
     "code" : "200",      
     "msg" : "设备初始化成功",      
     "data" : {           
         "deviceId" : "xxxxxx" ,//设备id          
         "agentCode":"aaaaaaaa"//店铺code     
     }  
 }
  • 主要返回参数说明
参数名 类型 说明
deviceId string 设备号
agentCode string 店铺标识

# 2 初始化重试

当出现个别情况比如网络差导致初始化失败,可以尝试调用此方法进行重试,成功会回调init方法的initListener接口。

  • 请求方法:
movieSdk.sdk_retryInit()

# 3 新建播放显示方法

  • 构造方法

    TestView(this,moviePlayEntity,this);

  • moviePlayEntity字段说明

    字段 类型 是否必传 说明
    qipuId String 是 影片id
    orderId String 否 订单id
    orderTime String 否 订单开始时间,毫秒
    orderType int 否 订单类型,包天付费传1,单片付费传2,免费传3
    orderPrice String 否 订单价格,免费类型不传

# 4 回调初始化回调方法

# 4.1 播放控制

  1. void doStart ();开始播放执行方法
  2. void doPlayOrPause(boolean isResume);暂停或者恢复播放执行方法,true为恢复播放,false为暂停
  3. void doSeek(long position);快进执行方法;position为快进的时间长度(ms)
  4. void doStop();停止播放执行方法
  5. String doGetMovieInfo();获取影片播放信息
  • 参数
参数名 类型 说明
moviePosition long 当前播放位置(ms)
movieTotalTime long 影片总长度(ms)

# 4.2 界面更新

  1. void showPlayEnd();播放结束回调方法
  2. void showLoading();播放加载中回调方法
  3. void showLoadingComplete();播放加载完成回调方法
  4. void showPause();播放暂停回调方法
  5. void showPlaying();正在播放回调方法
  6. void showSeek();快进回调方法
  7. void showPlayError(int code,String error); 播放错误回调方法,先检查存储服务是否正常; 如果不能恢复,可将错误信息反馈给客服人员协助排查;
  8. void showPlayBegin ();播放开始回调方法

# 4.3 播放器选择

说明:调用jumpPlayYB(View v)方法切换到YB播放器,调用jumpPlayBP(View v)方法切换到BP播放器

  1. YB播放器:为调用系统播放器方式,兼容性更好,但启动切换较慢。
  2. BP播放器:为调用ffmpeg播放器方式,流畅度更佳。推荐使用。

# 播放能力相关集成注意事项

1、开机启动次数及apk启动次数,合作方按照爱奇艺事件投递接口要求传递信息,爱奇艺依据该部分数据做数据统计及分析,后续可提供分析结果给渠道方做业务分析。 2、调用播放接口时,对于影片不可播时需给予用户友好提示,诸如影片已下线,请观看其他内容之类提醒。

3、由于市场Android碎片化严重,播放器只能保证大部分设备的播放能力。

4、因此在集成测试阶段,渠道方应该使用DEMO程序在即将部署的店面设备上充分测试,在确保播放功能及稳定性后,再进行店面部署。

5、推荐先使用BP播放器进行播放测试;如果存在问题,切换YB播放器进行播放测试。