Android SDK开发 接入文档范例

开发环境配置

1. 工程配置

  • gradle.properties文件中添加
android.useAndroidX=true
android.enableJetifier=true

2. 依赖配置

  • 项目级build.gradle文件中添加
maven { url "xxx" }
maven { url 'xxx' }
  • module的build.gradle文件中添加
android {
    //……
    // java8
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    //……
}
dependencies {
    implementation 'xxx'
}

3. SDK配置

RtcClientOverallSetting.getInstance().setAuthUrl("xxx");
RtcClientOverallSetting.getInstance().setSocketUrl("xxx");

可以通过此方法配置鉴权地址和WebSocket连接地址,配置完后打开接听或者拨打页面的基本参数就不需要配置了,若不通过此方法配置也可以在打开接听页面方法参数中直接配置。具体查看调用方式。

SDK调用方式

// 登录用户自己的userId(用于鉴权;必传)
long authUserId = 6781;
// 登录用户昵称(必传)
String userName = "Android用户";
// 后台提供的userId(用于连接WebSocket;必传)
String userId = rtcInfo.getUserId();
// 房间号(必传)
String roomId = rtcInfo.getRoomId();
// 房间名称
String roomName = rtcInfo.getLiveTitle();
// 房间创建者(必传)
String hostId = rtcInfo.getHostId();
// 创建者头像
String hostImage = rtcInfo.getIcon();
// 报道id
String reportId = rtcInfo.getReportId();
// 拨打时间点
long callSendWhen = rtcInfo.getStartDate();
// 条件判断
if (authUserId > 0
        && !TextUtils.isEmpty(userId)
        && !TextUtils.isEmpty(roomId)
        && RtcClient.getCallState() == RtcCallStatus.CALL_IDLE
        && !RtcClient.callTimeOut(callSendWhen)) {
    RtcClient
            .newBuilder(this)
            .authUrl(BuildConfig.RTC_URL_AUTH)
            .socketUrl(BuildConfig.RTC_URL_SOCKET)
            .authUserId(String.valueOf(authUserId))
            .userId(userId)
            .userName(userName)
            .reportId(reportId)
            .hostId(hostId)
            .roomId(roomId)
            .roomName(roomName)
            .hostHeadImage(hostImage)
            .build()
            .rtc();
}

API说明

  • 启动通话页面
    /**
     * 启动通话页面
     *
     * @param context 上下文
     * @return 构建者
     */
    public static Builder newBuilder(Context context) {
        return new Builder(context);
    }
  • 获取通话状态
    /**
     * 获取通话状态
     *
     * @return 通话状态
     */
    public static RtcCallStatus getCallState() {
        return RtcManager.getInstance().getRtcStatus();
    }
public enum RtcCallStatus {
    /*空闲状态*/
    CALL_IDLE,

    /*待接听 中*/
    ANSWER_ING,

    /*通话 中*/
    CALL_ON,

    /*结束通话*/
    CALL_OFF,

    /*通话异常*/
    CALL_ERROR,

    /*连接中*/
    CALL_CONNECTION
}
  • 判断通话是否过期
    /**
     * 判断通话是否过期
     * 默认3分钟
     *
     * @param callSendWhen 拨打时间
     * @return 是否过期
     */
    public static boolean callTimeOut(long callSendWhen) {
        return System.currentTimeMillis() - callSendWhen > CALL_TIME_OUT_VALUE;
    }
  • 打开通话页面
    /**
     * 打开通话页面
     */
    public void rtc() {
        VideoChatActivity.launchSelf(NullObjectCheck.requestObjectNotNull(context, "context"), NullObjectCheck.requestObjectNotNull(rtcParam, "rtcParam"));
    }

备注

修改视频通话悬浮窗样式可以通过复写rtc_layout_float_view.xml布局文件

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。