title : 安装和初始化

本篇文档介绍如何安装 SDK 并初始化 WilddogVideoCall。

安装 SDK

  • 使用 Maven 安装 WilddogVideoCall SDK
  1. <dependency>
    <groupId>com.wilddog.client</groupId>
    <artifactId>wilddog-video-call-android</artifactId>
    <version>1.0.0-beta</version>
    <type>aar</type>
    </dependency>
  • 使用 Gradle 安装 WilddogVideoCall SDK
  1. dependencies {
    compile 'com.wilddog.client:wilddog-video-call-android:1.0.0-beta'
    }

如果出现由于文件重复导致的编译错误,可以在 build.gradle 中添加 packingOptions:

  1. android {
  2. ...
  3. packagingOptions {
  4. exclude 'META-INF/LICENSE'
  5. exclude 'META-INF/NOTICE'
  6. }
  7. }

初始化 Video SDK

WilddogVideoCall 是 WilddogVideoCall SDK 功能的主入口。用户在使用 SDK 之前,要初始化 WilddogVideoCall 实例,以连接野狗服务器。

初始化之前,打开控制面板 - 应用 - 实时视频通话 - 配置,获取 VideoAppID。

初始化 WilddogVideoCall 之前,要先经过 野狗身份认证。开发者可以根据需要选择匿名登录、邮箱密码、第三方或自定义认证等方式进行身份认证。

参考以下代码可以安装WilddogAuth SDK。

  • 使用 Maven
  1. <dependency>
    <groupId>com.wilddog.client</groupId>
    <artifactId>wilddog-auth-android</artifactId>
    <version>2.0.5</version>
    </dependency>
  • 使用 Gradle

在build.gradle中添加:

  1. dependencies {
    compile 'com.wilddog.client:wilddog-auth-android:2.0.5'
    }

成功通过身份认证后,用户将获得 uid 以及 token。以匿名方式登录后初始化 WilddogVideoCall 为例:

  1. @Override
  2. public void onCreate() {
  3. super.onCreate();
  4. //初始化WilddogApp实例,初始化WilddogApp后,即可在项目任意位置获取数据库地址引用
  5. //mAppId即野狗应用ID
  6. WilddogOptions.Builder builder = new WilddogOptions.Builder().setSyncUrl("http://"+ mAppId +".wilddogio.com");
  7. WilddogOptions options = builder.build();
  8. WilddogApp.initializeApp(getApplicationContext(), options);
  9. //获取Auth对象
  10. WilddogAuth auth = WilddogAuth.getInstance();
  11. //匿名登录系统
  12. auth.signInAnonymously().addOnCompleteListener(new OnCompleteListener<AuthResult>() {
  13. @Override
  14. public void onComplete(Task<AuthResult> task) {
  15. if (task.isSuccessful()) {
  16. //...
  17. //完成身份认证后初始化 Video SDK,如身份认证失败则会引起初始化失败或应用崩溃
  18. WilddogUser user = task.getResult().getCurrentUser();
  19. initVideoSDK();
  20. }else {
  21. throw new RuntimeException("auth 失败"+task.getException().getMessage());
  22. }
  23. }
  24. });
  25. //....
  26. }
  27. private void initVideoSDK(){
  28. String token = WilddogAuth.getInstance().getCurrentUser().getToken(false).getResult().getToken();
  29. //初始化 WilddogVideoCall SDK
  30. WilddogVideoInitializer.initialize(context,videoAppId,token);
  31. //获取 WilddogVideo对象
  32. WilddogVideoCall videoWilddogVideoCall.getInstance();
  33. }

代码混淆

在生成 apk 进行代码混淆时进行如下配置:

  1. -keep class com.wilddog.client.**{*;}
  2. -keep class com.wilddog.**{*;}
  3. -keep class com.fasterxml.jackson.**{*;}
  4. -keep class com.fasterxml.jackson.databind.**{*;}
  5. -keep class com.fasterxml.jackson.core.**{*;}

其余问题

在 Android Studio 进行 Sync Project 时会提示如下警告:

  1. Warning:WARNING: Dependency org.json:json:20090211 is ignored for debug as it may be conflicting with the internal version provided by Android.

消除警告请进行如下配置,在模块级 build.gradle 文件的 android {} 中添加:

  1. configurations {
  2. compile.exclude group: "org.json", module: "json"
  3. }

设置代理

设置 WilddogVideoCall 的代理WilddogVideoCall.Listener 用于监听通话请求:

  1. video.setListener(new WilddogVideoCall.Listener() {
  2. @Override
  3. public void onCalled(Conversation conversation, String s) {
  4. }
  5. @Override
  6. public void onTokenError(WilddogVideoError wilddogVideoError) {
  7. }
  8. });

实现代理方法 onCalled(Conversation conversation, String s),当收到远端通话请求时,会触发该方法:

  1. public void onCalled(Conversation conversation, String s) {
  2. // 处理通话请求。
  3. }

实现代理方法 onTokenError(WilddogVideoError wilddogVideoError),当 token 错误或过期时,会触发该方法:

  1. public void onTokenError(WilddogVideoError wilddogVideoError) {
  2. // 处理 token 错误。
  3. }