短视频 Android接入文档

短视频 Android接入文档

前言

  • 本文档介绍 Android Studio 开发环境下基于 Maven 方式集成的步骤,请仔细阅读文档和 Demo 工程。
  • 本文档适用SDK 版本:v3.0.1.0 及以后
  • SDK最低版本: 17

  • SDK资源包下载:请联系我们的技术支持:文档中心右侧“技术咨询”

  • SDK资料包结构:打开下载的 SDK 资料包,资料包的详细结构如下:
GETUI_BX_ANDROID_SDK/
  |- 短视频变现SDK接入文档.pdf
  |- 聚合广告变现SDK接入文档.pdf
  |- SDK权限说明.pdf
  |- README.pdf
  |- Demo 工程/
  |    |- BX_SDK_Demo_AS_official/ (AndroidStudio 标准集成 Demo 工程)
  • 本文默认读者已经具有基础的 Android 知识,以及项目工程结构如下:
BX_SDK_Demo_AS_official/
    |- app/ (项目主模块)
    |    |- libs/ (第三方库)
    |    |- src/ (代码目录)
    |    |- build.gradle (模块级 gradle 文件)
    |- gradle/
    |- build.gradle (顶层 gradle 文件)
    |- settings.gradle
    | ......

注:其中 “......” 表示省略其他与本教程无关的内容,以下 “......” 表示相同意义,不再重复说明。

1. 创建个推应用

2. Maven 集成(推荐)

2.1. 在工程的根目录下的build.gradle文件中的 allprojects { } 中,添加如下代码:

maven {
 url "https://mvn.getui.com/nexus/content/repositories/releases/"
}

2.2. 在 app/build.gradle 文件中的 android.defaultConfig 下添加 manifestPlaceholders

manifestPlaceholders = [
   GETUI_APPID: "your GETUI_APPID"
]

2.3. 在app所在module的build.gradle文件中的 dependencies { } 中,添加如下代码:

// 变现SDK 核心库
implementation 'com.getui:bxsdk:3.0.3.0'
//短视频 核心库
implementation 'com.getui:bxc:1.0.0.0'
// gtc 为个推公司公共代码库,如果已经接入的个推其他产品内已经包含 gtc ,则无需再次引入
implementation 'com.getui:gtc:3.1.7.0'

implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'

3. 初始化SDK

类名 com.getui.bxsdk.BXManager
接口 public void init(Context context)

说明:

  • 初始化变现SDK
  • 请在主线程中调用,建议在Application

参数:

context:应用的 ApplicationContext

示例

BXManager.getInstance().init(context);

4. 变现SDK Debug模式

类名 com.getui.bxsdk.BXManager
接口 public void setDebug(boolean isDebug)

参数:

  • isDebug:是否打开Debug模式,默认关闭.

示例

BXManager.getInstance().setDebug(boolean isDebug);

5. 资源方Debug模式

类名 com.getui.bxsdk.BXManager
接口 public void setAdSourceDebug(boolean isDebug)

参数:

  • isDebug:是否打开广告资源方Debug模式,默认关闭.

6. 获取版本号

类名 com.getui.bxsdk.BXManager
接口 public String getVersion()

说明:

  • 获取版本号

示例

BXManager.getInstance().getVersion();

7. 短视频配置及回调函数

BxContentConfig参数配置类

  • contentTimeOut 超时时长,单位毫秒
  • expressViewWidth 期望宽度 dp
  • feedStyle feed流样式:
    Constant.DOUBLE_FEED_STREAM 双视频
    Constant.SINGLE_FEED_STREAM 单视频

  • enterStyle 入口样式:
    Constant.ENTER_SMALL_VERTICAL_DOUBLE 小卡竖版双feed
    Constant.ENTER_SMALL_VERTICAL_MORE 小卡竖版多feed
    Constant.ENTER_BIG_VERTICAL_MORE 大卡竖版多feed
    Constant.ENTER_BIG_HORIZONTAL 大卡横版样式
    Constant.ENTER_BIG_PIC 大图样式

示例
BxContentConfig build = new BxContentConfig.Builder().setFeedStyle(Constant.SINGLE_FEED_STREAM).build();

BxContentListener回调类


public interface BxContentListener {

    /**
     * 发生错误
     * @param s
     */
    void onError(String s);

    /**
     * 加载成功
     * @param fragment
     */
    void onLoadContent(Fragment fragment);

    /**
     * 视频开始播放
     */
    void onVideoPlayStart();
    /**
     * 视频暂停
     */
    void onVideoPlayPaused();
    /**
     * 视频刷新
     */
    void onVideoPlayResume();
    /**
     * 视频播放完成
     */
    void onVideoPlayCompleted();
    /**
     * 内容页面进入
     */
    void onPageEnter();
    /**
     * 内容页面刷新
     */
    void onPageResume();

    /**
     * 内容页面暂停
     */
    void onPagePause();
    /**
     * 内容页面离开
     */
    void onPageLeave();
    /**
     * 加载超时
     */
    void onTimeOut();
}

8. 加载短视频入口

类名 com.getui.bxsdk.BxContentManager
接口 public String loadEntryElement(BxContentConfig config,BxContentEnterListener listener)

说明:

  • 短视频入口样式
  • config 参数:必填setEntryStyle();
    Constant.ENTER_SMALL_VERTICAL_DOUBLE 小卡竖版双feed
    Constant.ENTER_SMALL_VERTICAL_MORE 小卡竖版多feed
    Constant.ENTER_BIG_VERTICAL_MORE 大卡竖版多feed
    Constant.ENTER_BIG_HORIZONTAL 大卡横版样式
    Constant.ENTER_BIG_PIC 大图样式

示例

BxContentManager.getInstance().loadEntryElement(config, new BxContentEnterListener(){
    //...省略...
    @Override
    public void onLoadContent(Fragment fragment) {
        og.e(TAG, "onLoadStart" + Thread.currentThread());
        getSupportFragmentManager().beginTransaction()
        .replace(R.id.container, fragment).commitNowAllowingStateLoss();

    }   
 //...省略...

})

9. 加载通用短视频

类名 com.getui.bxsdk.BxContentManager
接口 public String loadContentPage(BxContentConfig config,BxContentListener listener)

说明:

  • 短视频通用样式

示例

BxContentManager.getInstance().loadContentPage(config, new BxContentListener(){
 //...省略...
    @Override
    public void onLoadContent(Fragment fragment) {
        og.e(TAG, "onLoadStart" + Thread.currentThread());
        getSupportFragmentManager().beginTransaction()
        .replace(R.id.container, fragment).commitNowAllowingStateLoss();

    }   
 //...省略...

})

10. 加载feed流短视频

类名 com.getui.bxsdk.BxContentManager
接口 public String loadFeedPage(BxContentConfig config,BxContentListener listener)

说明:

  • 短视频feed流样式
  • config 必填 setFeedStyle()
    Constant.DOUBLE_FEED_STREAM 双视频
    Constant.SINGLE_FEED_STREAM 单视频

示例

BxContentManager.getInstance().loadFeedPage(config, new BxContentListener(){
    //...省略...
    @Override
    public void onLoadContent(Fragment fragment) {
        og.e(TAG, "onLoadStart" + Thread.currentThread());
        getSupportFragmentManager().beginTransaction()
        .replace(R.id.container, fragment).commitNowAllowingStateLoss();

    }   
 //...省略...

})

11. 加载横版短视频

类名 com.getui.bxsdk.BxContentManager
接口 public String loadHorizontalFeedPage(BxContentConfig config,BxContentListener listener)

说明:

  • 短视频横版视频

示例

BxContentManager.getInstance().loadHorizontalFeedPage(config, new BxContentListener(){
    //...省略...
    @Override
    public void onLoadContent(Fragment fragment) {
        og.e(TAG, "onLoadStart" + Thread.currentThread());
        getSupportFragmentManager().beginTransaction()
        .replace(R.id.container, fragment).commitNowAllowingStateLoss();

    }   
 //...省略...

})

12. 加载横版短视频+图文

类名 com.getui.bxsdk.BxContentManager
接口 public String loadHorizontalNewsFeedPage(BxContentConfig config,BxContentListener listener)

说明:

  • 短视频横版视频+图文样式

示例

BxContentManager.getInstance().loadHorizontalNewsFeedPage(config, new BxContentListener(){
    //...省略...
    @Override
    public void onLoadContent(Fragment fragment) {
        og.e(TAG, "onLoadStart" + Thread.currentThread());
        getSupportFragmentManager().beginTransaction()
        .replace(R.id.container, fragment).commitNowAllowingStateLoss();

    }   
 //...省略...

})

文档中心搜索

技术
咨询

微信扫一扫

随时联系技术支持

在线
咨询