Video++ Android集成说明

2018-12-25 19:06 [复制链接] 66 0

Video++ Android互动层对接SDK集成
有两种方式将Video++互动层添加到你的工程:
  • 使用项目依赖
  • 手动添加配置compile project(‘:venvy_pub’)

使用Gradle
repositories {
maven { url ‘https://dl.bintray.com/videoli/maven/‘ }
}
dependencies {
implementation ‘cn.com.videopls.pub:1.1.0’
}

兼容性
  1. 最低Android SDK :16
  2. 编译Android SDK :API 26或更高版本进行编译
复制代码

快速集成SDK

  • 使用Gradle集成,具体可参看SDK demo工程配置:
    repositories {
    mavenCentral()
    maven { url ‘https://dl.bintray.com/videoli/maven/‘ }
    }
    dependencies {
    implementation ‘cn.com.videopls.pub:1.1.0’
    }
  • 配置AndroidManifest.xml AndroidManifest.xml需要配置:
    <uses-permission android:name="android.permission.INTERNET" />
  • 依赖的第三方库(具体视平台不同而不一致)

  1. compile "com.github.bumptech.glide:glide:3.7.0"
  2. compile "com.squareup.okhttp3:okhttp:3.8.0"
  3. compile 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.0.2'
  4. annotationProcessor 'com.videoli:venvy_processor_compiler:1.0.1'
复制代码

互动层对接
SDK初始化
在 Application项目入口初始化SDK。
示例代码:
  1. VideoPlus.appCreate(Application application);
复制代码

对接VideoPlusView

  • 根据需要接入的SDK创建VideoPlusView,将SDK需要的信息配置在VideoPlusAdapter中。

    • videoID 为点播视频url或直播房间号
    • types 为视频类型(点播or直播),默认为点播
  • 初始化VideoPlusAdapter, VideoPlusView就是生成的互动层,将这个view添加到播放器层之上就可以了。SDK所需参数需复写VideoPlusAdapter相关方法,详细作用请看注释。

  1. //适配器VideoPlusAdapter (注:VideoView代表平台播放器,非必填)
  2. public class PlusAdapter extends VideoPlusAdapter {
  3. private VideoView player;
  4. public PlusAdapter(VideoView player) {
  5.      this.player = player;
  6. }
  7. //设置配置信息(注:setVideoID为点播视频ID,直播为房间号)
  8. /***
  9.   * 设置配置信息
  10.   * @return Provider配置信息类
  11.   * 注:setVideoID(String videoId)为点播视频ID,直播为房间号
  12.   *    setVideoType(VideoType videoType)为视频类型,VideoType.VIDEOOS点播 VideoType.LIVEOS直播
  13.   */
  14. @Override
  15. public Provider createProvider() {
  16.      Provider provider = new Provider.Builder().setVideoID(String.valueOf(12)).setVideoType(VideoType.LIVEOS).build();
  17.      return provider;
  18. }
  19. /***
  20.   *
  21.   * @return IMediaControlListener 平台方播放器相关状态
  22.   * 注:     getVideoSize(int horVideoWidth, int horVideoHeight, int verVideoWidth, int verVideoHeight, int portraitSmallScreenOriginY)为视频播放器横竖屏Size(必填)
  23.   *         getCurrentPosition()为播放器当前播放时间(单位:毫秒),点播必须复写处理 直播无需此操作。
  24.   */
  25. @Override
  26. public IMediaControlListener buildMediaController() {
  27.      return new VideoOSMediaController() {
  28.          @Override
  29.          public VideoPlayerSize getVideoSize() {
  30.              return new VideoPlayerSize(VenvyUIUtil.getScreenWidth(player.getContext()), VenvyUIUtil.getScreenHeight(player.getContext()),
  31.                      VenvyUIUtil.getScreenWidth(player.getContext()), 200, 0);
  32.          }
  33.          @Override
  34.          public long getCurrentPosition() {
  35.              return player != null ? player.getCurrentPosition() : -1;
  36.          }
  37.      };
  38. }
  39. //广告展示监听
  40. @Override
  41. public IWidgetShowListener buildWidgetShowListener() {
  42.      return super.buildWidgetShowListener();
  43. }
  44. //广告点击监听
  45. @Override
  46. public IWidgetClickListener buildWidgetClickListener() {
  47.      return super.buildWidgetClickListener();
  48. }
  49. //广告关闭监听
  50. @Override
  51. public IWidgetCloseListener buildWidgetCloseListener() {
  52.      return super.buildWidgetCloseListener();
  53. }
  54. //注册网络图片架构插件
  55. @Override
  56. public Class<? extends IImageLoader> buildImageLoader() {
  57.      return GlideImageLoader.class;
  58. }
  59. //注册网络请求架构插件
  60. @Override
  61. public Class<? extends IRequestConnect> buildConnectProvider() {
  62.      return cn.com.venvy.common.okhttp.OkHttpHelper.class;
  63. }
  64. //MQTT长连接结构插件
  65. @Override
  66. public Class<? extends ISocketConnect> buildSocketConnect() {
  67.      return VenvyMqtt.class;
  68. }
  69. }
  70. 详细调用请查看官网Demo项目。
复制代码

接着,设置设置适配器,代码如下所示
  1. VideoPlusView plusView = new VideoOsView(Context context);
  2. PlusAdapter plusAdapter = new PlusAdapter(MediaPlay play);
  3. plusView.setVideoOSAdapter(plusAdapter);
复制代码

  • 全部完成之后调用 start ,开启互动层。
    plusView.start();
  • 如退出播放页面或直播间,调用stop方法
    plusView.stop();
  • 其它
    6.1屏幕旋转处理:
  1. plusAdapter.notifyVideoScreenChanged(ScreenStatus.SMALL_VERTICAL);
  2.     注(FULL_VERTICAL,SMALL_VERTICAL,LANDSCAPE分别代表平台方播放器界面调用)
复制代码
  • 6.2中插视频广告暂停唤醒调用:
    plusAdapter.notifyMediaStatusChanged(MediaStatus.PLAYING);
  • adID 为广告的唯一标识
  • adName 为广告名
  • eventType 为广告触发的事件,包括展示、点击、关闭等
  • actionType 为对接方需要做的操作,包括打开外链,暂停视频,播放视频
  • url 为外链地址

注意事项

  • VideoPlusAdapter Provider参数为视频的标识(原url),可以用url作为参数 或 使用拼接 ID的方式来识别(前提为与pc对接并通过)。
  • 文档中的代码仅供参考,实际参数请根据项目自行配置。
  • 请将互动层置于合适位置以防阻挡事件分发操作。
  • 最佳位置为加载控制栏的下方,播放器上方。

Demo项目功能

1.Demo项目首页分为直播,点播,点击进入对应的平台。
2.进入默认开启播放器 开启互动。
3.底部提供俩个配置按钮,实现对互动广告的配置。
4.底部“模拟”按钮为测试本地广告功能。
5.底部右侧按钮为互动配置项,点击弹出配置项,可输入“素材名称”以“VideoID”(注:二选一即可)
其中输入“素材名称”为展示未投放的广告,输入“VideoID”展示已投放的广告。


使用道具 举报 只看该作者 回复
最新评论 | 正序浏览
只看楼主|楼层直达:
*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|站点地图|Video++ ( 沪ICP备14042830-6号

Powered by video++

快速回复 返回顶部 返回列表