Skip to content
wangqiang edited this page Dec 21, 2017 · 11 revisions

1. 集成说明

1.1 运行环境

  • 支持环境:armv7a、x86、arm64
  • 最小支持Android系统版本:Android 4.4(API 19)
  • 按照Readme中描述,通过Gradle引用相关的第三方库
  • 按照Readme中描述,配置好AndroidMainfest文件
  • 通过github下载相应的AAR或者通过jCenter依赖相应的aar

2. 功能集成流程

2.1 鉴权

IKSVSShortVideoListener 具体方法解释详见:IKSVSShortVideoListener

  1. 注册鉴权监听器
 /**
  *  通过KSVSShortVideoKitManager静态方法Add一个监听器,用于监听鉴权的成功与失败。
  *  注意: 在代码使用过程中,如果发现鉴权过期,也会回调鉴权失败的接口
  */
 KSVSShortVideoKitManager.addAuthorizeListener(Context, IKSVSShortVideoAuthListener);
  1. 鉴权
 /**
  *  鉴权成功或者失败,都会通过IKSVSShortVideoAuthListener返回结果
  *  @param: SDKToken,在金山云短视频解决方案官网申请得到,具体申请流程查看readme文件
  *  @param: UserToken,解释查看readme文件,如果不使用二次鉴权,这个值可以为空,如果使用,请联系自己的服务器分发。
  */
  KSVSShortVideoKitManager.authorize(Context,SDKToken, UserToken);
  1. 移除单一的监听器
 /**
  * 移除之前添加的无用监听器
  */
 KSVSShortVideoKitManager.removeAuthorizeListener(Context, IKSVSShortVideoAuthListener);
  1. 清除所有的监听器
 /**
  * 清除所有的监听器
  */
 KSVSShortVideoKitManager.releaseAuthorize(Context);

教你如何优雅的使用鉴权

因为IKSVSShortVideoAuthListener的onFailed方法会在任何时候回调,所以必须保证有一个IKSVSShortVideoAuthListener不能被回收,
这样我们才能处理所有的失败消息。
1. 按照Demo上的试例,我们可以在Application中注册一个监听器,这个监听器在任何的时候都不去销毁。
2. 在需要鉴权的Activity中(一般是有登录功能的Activity里),我们进行鉴权,这个时候可以在Add一个IKSVSShortVideoAuthListener,
在收到鉴权成功或者失败的消息是,直接remove掉这次添加的Listener。
3. 如果在正常的时候录制、播放、推荐等页面时出现鉴权过期。此时会回调Application中IKSVSShortVideoAuthListener接口,可以在失败
时弹出提示或者增加自己的处理逻辑

2.2 开启录制页和播放器

  1. 开启录制页
 /**
  * 启动录制页,注意:录制页是一个Activity,请在AndroidMainfest文件中注册并且声明相关的Activity
  * @param String:当前用户的唯一标示。短视频解决方案不记录用户的详细信息,唯一需要用户的唯一标示。请保证您APP服务器下发的Uid
  * 是唯一的。
  * @param KSVSKitDataBuild: 常规参数配置,目前可以通过KSVSKitDataBuild配置录制的最小时间和最大时间
  */
  KSVSShortVideoKitManager.startRecording(Context, String,KSVSKitDataBuild.build());
  1. 开启播放页
/**
  * 启动播放页,注意:播放页是一个Activity,请在AndroidMainfest文件中注册并且声明相关的Activity
  * @param MediaInfo:需要播放的MediaInfo对象,您可以自己new一个MediaInfo对象,但是要保证MediaInfo对象中ID和Url的正确
  * @param null: 暂时不需要,请直接传入空即可
  * @param String: 当前用户的唯一标示。短视频解决方案不记录用户的详细信息,唯一需要用户的唯一标示。请保证您APP服务器下发的Uid
  * 是唯一的。
  *
  * 用途: 一般用于播放已上传视频,所以对于这个方法需要MediaInfo信息,如果您想通过这个播放器播放其他的视频,那么只能自己去搞定
  * MediaInfo中的内容了
  */
   KSVSShortVideoKitManager.startPlayer(Activity,MediaInfo, null, String);

教你如何优雅的使用录制页

  • 对于录制视频而言,为了保证录制视频的完整性,可观看性,必须要求APP有录音和摄像的权限。但是众所周知,在Android6.0以上,这些权限 需要动态申请,so:
  1. 可以在调用startRecording方法之前动态申请权限,如果没有这些权限,那就不让用户进行录制
  2. 因为录制页中有用户从本地导入视频等功能,so,请在申请权限时也加上对SD卡操作的权限。
  3. 在启动前友好的申请权限,可以让用户更加喜爱您的APP。

2.3 开启推荐页

为了让解决方案提供的UI界面更加适应与您APP的风格,对于推荐页的处理,我们增加了更加友好的操作。但是不幸的是,也需要您多写几行代码。 推荐页对于Android而言,使用的是Fragment进行实现。您必须把这个Fragment合理的添加在您的视图中:

  /**
   * 通过KSVSShortVideoKitManager获取推荐页的Fragment,您需要给我对于用户的UID,也就是那个唯一的用户标示
   */
  Fragment mRecommendFragment = KSVSShortVideoKitManager.newRecommendFragment(String);
  FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
  /**
   * 把我给您的推荐Fragment加入到自己的布局文件中。这个和其他的fragment操作并没有什么区别
   */
  transaction.add(R.id.fl_recommend, mRecommendFragment);
  transaction.commit();

您看:虽然和启动播放页、录制页不一样,但也就需要这么四行代码搞定,这对您而言很简单吧~~~

2.4 已上传视频

这一部分我只能使用接口的形式提供给您了,因为我并不知道您个人中心页是什么样子(产品认定:已上传视频您肯定会放给个人中心页~)

IKSVSShortVideoRequestListener 具体方法解释详见:IKSVSShortVideoRequestListener

  1. 获取已上传视频
//TODO: 首先,获取KSVSShortVideoKitManager对象。您没有看错,之前的都是静态方法,获取已上传视频就需要KSVSShortVideoKitManager对象了
KSVSShortVideoKitManager mKitManager = new KSVSShortVideoKitManager(this);
//TODO: 其次:调用getUploadVideos 方法获取已上传视频。具体内容会通过IKSVSShortVideoRequestListener回调给您
/**
 * @param String uid:您没有看错,就是那个用户的唯一标示,这里可不能错啊,不然可能让A用户看到B用户的已上传视频
 * @param int page:这个就是分页属性。对于爱好上传视频的人而言,已上传视频就不是一页能展示下的,所以为了友好度,APP还是增加分页处理吧
 * @params int size: 这个参数就是每页有多少条数据。为了当前接口的速度,强烈(yao)建(qiu)议,这个size不要大于50条
 * @params IKSVSShortVideoRequestListener: 等待一点时间,这个接口中就能收到用户已上传视频了
 */
mKitManager.getUploadVideos(String, int , int ,IKSVSShortVideoData.IKSVSShortVideoRequestListener<VideoInfos>);
  1. 删除已上传视频
//TODO: 首先,和获取已上传视频一样,删除已上传视频也需要KSVSShortVideoKitManager对象
KSVSShortVideoKitManager mKitManager = new KSVSShortVideoKitManager(this);
//TODO: 其次,调用deleteUploadVideos方法就可以删除具体的视频了
/**
 * @param String:用户唯一标示 在获取已上传视频时需要这个,当然,在删除时也需要这个参数,不然我们并不知道要删那个用户的视频
 * @param int: 视频ID,要删除视频,视频ID就是必须的,不然如何找到用户名下具体的视频呢。如何获取用户ID?您只能通过查询已上传
 * 视频信息时,通过VideoInfos.getVideos(i).getId()获取了
 * @param IKSVSShortVideoRequestListener,等待一段时间,您就可以在这个回调中看到视频是否以及删除成功了。一般情况(只要参数、网络没问题),删除视频肯定就会成功
 */
mKitManager.deleteUploadVideos(String, int,IKSVSShortVideoData.IKSVSShortVideoRequestListener<Boolean>);
  1. 回收KSVSShortVideoKitManager对象 虽然说java是有垃圾回收机制的,但是,有那么一丁点东西,可能靠java垃圾回收是搞不定的。所以,为了APP的健康,请手动回收KSVSShortVideoKitManager对象。
/**
 * 就是这个方法,在您不用KSVSShortVideoKitManager时,就调用以下吧。我会帮你搞定那些没用的垃圾
 */
mKitManager.release();

2.5 上传头像

本来我所提供的接口到2.4就停止了。但是产品说:为了让客户上传头像更加简单一点,要求我们提供上传头像的接口...

IKSVSShortVideoListener 具体方法解释详见:IKSVSShortVideoListener

//TODO: 上传头像也需要KSVSShortVideoKitManager对象
KSVSShortVideoKitManager mKitManager = new KSVSShortVideoKitManager(this);
//TODO: 开始上传了
/**
 * @param String uid:第一个参数当然就是那个用户的唯一标示了。
 * @param String path: 文件路径,对于您的APP而言,要保证文件的存在,保证路径的可用,保证有权限。。。
 * @param IKSVSShortVideoListener:上传成功、失败、进度。这些消息都在这个IKSVSShortVideoListener中放着
 */
mKitManager.uploadFile(String, String, IKSVSShortVideoListener)
最后,如果使用完mKitManager,那么就请调用release销毁掉吧。

用好uploadFile方法

  • 如果您要和我一样通过uploadFile上传用户头像,那么至少要保证图片不要太大。如果太大会咋样?上传慢、展示慢。。。反正我是忍不了这个展示慢的情况
  • 上传了头像,您一定需要头像的地址(zhe shi fei hua):可以看看SettingActivity中的实现,在IKSVSShortVideoListener的onInfo方法中,通过data.getString(IKSVSShortVideoUpload.UPLOAD_INFO_FILE_PATH);就能拿到具体的地址了
  • 拿到地址之后要怎么处理:最好叫您APP服务端同学存以下这个地址。不然...万一APP忘了这个地址咋办