开放平台
首页平台概述
开发者
  • API文档
  • SDK
产品功能
  • 新手入门
  • 产品功能
常见问题
首页平台概述
开发者
  • API文档
  • SDK
产品功能
  • 新手入门
  • 产品功能
常见问题
  1. 版本更新说明
  • demo
  • JS SDK
    • 产品介绍
    • 快速接入
    • SDK 对接示例
    • 观看直播
    • 暖场视频
    • 房间消息说明
    • 互动连麦
    • 文档白板
    • 全局事件
    • 全局错误码
    • 版本更新记录
    • 互动工具
      • 互动-抽奖
      • 互动-礼物
      • 互动-签到
      • 互动-问卷
      • 互动-公告
      • 互动-商品
      • 互动-问答
      • 互动-推屏卡片
      • 互动-快问快答
      • 互动-聊天
      • 互动-优惠券
      • 互动-点赞
    • 直播间拓展功能
      • 资料下载
      • 观看限制验证
      • 观看协议
      • 回放章节
  • 点播SDK
    • 点播上传SDK
    • 更新记录
  • iOS SDK
    • 整体介绍
    • 快速接入
    • SDK 登录
    • 暖场视频
    • 视频轮询
    • 直播彩排
    • 高级美颜
    • 云导播
    • 观看协议
    • 文档白板演示
    • 聊天功能
    • 视频直播
      • 发起视频直播
      • 观看视频直播
    • 互动直播
      • 观众互动
      • 推流摄像头
      • 互动直播API
      • 主播发起互动直播
      • 嘉宾加入互动直播
    • 无延迟直播
      • 主播发起无延迟直播
      • 观众观看无延迟直播
    • 互动工具
      • 互动-抽奖
      • 互动-礼物
      • 互动-签到
      • 互动-问卷
      • 互动-章节打点
      • 互动-公告
      • 互动-商品
      • 互动-计时器
      • 互动-问答
      • 互动-推屏卡片
      • 互动-快问快答
      • 互动-优惠券
      • 互动-点赞
    • 直播间拓展能力
      • 直播间特色功能配置项
      • 文件下载
      • 修改角色昵称
      • 观看权限校验
      • 投屏
      • 虚拟人数
    • 观看回放
      • 观看回放
    • 防录屏
      • 跑马灯
    • 字段说明
      • 互动活动详情字段
      • 错误码说明
      • 常量定义
      • 活动详情字段说明
    • 版本更新说明
      • 版本更新信息
      • v2.3.0 到 v2.4.0 升级说明
      • v3.0.1 到 v3.2.0 升级说明
      • V2.9.0到v3.0.1升级说明
      • v6.3.0
      • v6.2.1
      • v3.2.0 到 v4.0.1
      • v2.7.0 到 v2.8.0、v2.9.0 升级说明
      • 6.5.0
      • v5.0.x 到 v6.0.0
      • v6.4.0
  • Adroid SDK
    • 整体介绍
    • 快速接入
    • SDK登录
    • 暖场视频
    • 视频轮巡功能
    • 直播彩排
    • 高级美颜
    • 云导播功能
    • 观看协议
    • 文档白板
    • 聊天功能
    • 房间消息
    • 信息采集说明
    • 视频直播
      • 发起视频直播
      • 观看视频直播
    • 互动直播
      • 互动直播API
      • 主播发起互动直播
      • 嘉宾加入互动直播
      • 观众观看互动直播
    • 无延迟直播
      • 主播发起无延迟直播
      • 观众观看无延迟直播
    • 互动工具
      • 互动-抽奖
      • 互动-礼物
      • 互动-签到
      • 互动-问卷
      • 互动-公告
      • 互动-商品
      • 互动-计时器
      • 互动-问答
      • 互动-推屏卡片
      • 互动-快问快答
      • 互动-优惠券
      • 互动-点赞
    • 直播拓展功能
      • 修改角色名称
      • 文件下载
      • 投屏演示
      • 虚拟人数
      • 观看权限校验
      • 直播间特色功能配置项
    • 观看回放
      • 观看回放/点播
    • 防录屏
      • 直播水印
      • 跑马灯
    • 字段说明
      • 房间消息字段说明
      • 聊天消息字段说明
      • 活动详情字段说明
    • 版本更新说明
      • 更新记录
      • v6.4.0
      • v6.3.0
      • v6.2.3
      • v6.2.1
      • v6.2.0
      • v6.1.0
      • v6.0.0
      • v5.0.0
      • v4.1.0
      • v4.0.0
      • v3.3.0
  • APP嵌入支付说明
    • 支付调起说明
    • Scheme规则说明
  1. 版本更新说明

v6.1.0

6.1.0

获取互动直播信息

发起参数描述:

参数字段描述
id活动ID(9位) , 在网页上创建
accessToken请求API获取的Token(新控制台创建的直播可以不写)
nickName自己设置的直播昵称(可以为空)
email自己设置的邮箱(可以为空)
LoadWebinarInfoCallback回调信息

代码展示

 VhallSDK.initBroadcast(webinarId, param.broToken, param.broName, new WebinarInfoDataSource.LoadWebinarInfoCallback() {
            @Override
            public void onWebinarInfoLoaded(String jsonStr, WebinarInfo webinarInfo) {
                   //初始化成功
            }

            @Override
            public void onError(int errorCode, String errorMsg) {
                //初始化失败
            }
        });

初始化互动SDK

InterActive构造函数参数描述

参数字段描述
context上下文
mRoomCallback房间信息回调
mChatCallback聊天消息回调
mMessageCallback自定义消息回调

InterActive init函数参数描述

参数字段描述
context上下文
mWebinarInfo活动信息
RequestCallback回调接口
 mInteractive = new InterActive(context, mRoomCallback,mChatCallback,mMessageCallback);

 mInteractive.init(mWebinarInfo, new RequestCallback() {
                @Override
                public void onSuccess() {
                    //初始化互动SDK成功
                }

                @Override
                public void onError(int errorCode, String errorMsg) {
                    //初始化互动SDK失败 
                }
            });

进入房间

 mInteractive.enterRoom();

发起直播/结束直播
方法签名

public void broadcastRoom(int type, int layout, Callback callback)

InterActive broadcastRoom函数参数描述

参数字段描述
type1发起 2关闭
layout旁路布局
Callback回调接口

旁路布局参数描述

值描述
17主次平铺,一行5个位于底部
0强制仅一人铺满

代码展示

  //发起直播
  mInteractive.broadCastRoom(1, VHInteractive.CANVAS_LAYOUT_PATTERN_TILED_6_1T5D, callback);

  //结束直播
    mInteractive.broadCastRoom(2,0,null);

发送消息
方法签名
public void sendMsg(String msg, String type, CallBack callBack)
InterActive sendMsg函数参数描述

参数字段描述
msg字符串消息
type消息类型
Callback回调接口

代码展示

mInteractive.sendMsg(msg, type, callBack);

主播下麦观众/嘉宾(观众嘉宾收到下麦消息的时候)
方法签名
public void unpublished()

代码展示

 RtcConfig.getInterActive().unpublished();

同意申请上麦
方法签名
public void agreeApply(String receive_account_id, RequestCallback callBack)
InterActive agreeApply函数参数描述

参数字段描述
receive_account_id用户id
RequestCallback回调接口

代码展示

  mInteractiveApi.agreeApply(userId, new SimpleRequestCallback());

拒绝申请上麦
方法签名
public void rejectApply(String receive_account_id, RequestCallback callBack)
InterActive rejectApply函数参数描述

参数字段描述
receive_account_id用户id
RequestCallback回调接口

代码展示

  mInteractiveApi.rejectApply(userId, new SimpleRequestCallback());

同意邀请上麦
方法签名
public void agreeInvite(RequestCallback callBack)
InterActive agreeInvite函数参数描述

参数字段描述
RequestCallback回调接口

代码展示

  mInteractiveApi.agreeInvite(new RequestCallback());

拒绝邀请上麦
方法签名
public void rejectInvite(RequestCallback callBack)
InterActive rejectInvite函数参数描述

参数字段描述
RequestCallback回调接口

代码展示

  mInteractiveApi.agreeInvite(new RequestCallback());

设置麦克风/摄像头状态
方法签名
public void switchDevice(String receive_account_id, String device, String status, RequestCallback callBack)
InterActive switchDevice函数参数描述

参数字段描述
receive_account_id用户ID
device1麦克风 2摄像头
status0关闭 1 打开
RequestCallback回调接口

代码展示

  mInteractive.switchDevice(roomInfo.join_info.third_party_user_id, "1", "0", null);

获取文档列表
方法签名
public void getDocList(int page, int pageSize, String keyword, RequestDataCallbackV2 callBack)
InterActive getDocList函数参数描述

参数字段描述
page页码(从1开始)
pageSize一页的长度
keyword用户昵称可以为空
callBack回调接口

代码展示

   mInterActive.getDocList(page, 10, "", new RequestDataCallbackV2<DocListInfoData>())

设置主讲人
方法签名
public void setMainSpeaker(String receive_account_id, RequestCallback callBack)
InterActive setMainSpeaker函数参数描述

参数字段描述
receive_account_id用户ID
callBack回调接口

代码展示

     mInterActive.setMainSpeaker(info.getAccount_id(), new RequestCallback())

用户主动下麦
方法签名
public void downMic(String receive_account_id, RequestCallback callBack)
InterActive downMic函数参数描述

参数字段描述
receive_account_id用户ID
callBack回调接口

代码展示

      mInterActive.downMic(info.getAccount_id(), new RequestCallback())

邀请用户上麦
方法签名
public void invite(String receive_account_id, RequestCallback callBack)
InterActive invite函数参数描述

参数字段描述
receive_account_id用户ID
callBack回调接口

代码展示

      mInterActive.invite(info.getAccount_id(), new RequestCallback())

获取受限用户列表
方法签名
public void getLimitUserList(int page, int pageSize, RequestDataCallbackV2 callBack)
InterActive invite函数参数描述

参数字段描述
page页码
pageSize一页的长度
callBack回调接口

代码展示

       mInterActive.getLimitUserList(page, 10, new RequestDataCallbackV2<UserStateListData>())

获取在线用户列表
方法签名
public void getOnlineUserList(int page, int limit, RequestDataCallbackV2 callBack)
InterActive invite函数参数描述

参数字段描述
page页码
pageSize一页的长度
callBack回调接口

代码展示

      mInterActive.getOnlineUserList(page, 10, new RequestDataCallbackV2<UserStateListData>())

踢出用户
方法签名
public void setKickOut(String receive_account_id, String status, RequestCallback callBack)
InterActive setKickOut函数参数描述

参数字段描述
receive_account_id用户ID
status1踢出 0取消踢出
callBack回调接口

代码展示

     mInterActive.setKickOut(info.getAccount_id(), vssType, new RequestCallback()

使用用户禁言
方法签名
public void setBanned(String receive_account_id, String status, RequestCallback callBack)
InterActive setBanned函数参数描述

参数字段描述
receive_account_id用户ID
status1禁言 0 取消禁言
callBack回调接口

代码展示

       mInterActive.setBanned(info.getAccount_id(), vssType, new RequestCallback() )

使用户下麦
方法签名
public void setUserNoSpeak(RequestCallback callBack)
InterActive setUserNoSpeak函数参数描述

参数字段描述
callBack回调接口

代码展示

     mInteractive.setUserNoSpeak( null)

用户取消举手上麦
方法签名
public void cancelApply(RequestCallback callBack)
InterActive cancelApply函数参数描述

参数字段描述
page页码
pageSize一页的长度
callBack回调接口

代码展示

       mInterActive.cancelApply(new RequestCallback())

用户举手申请上麦
方法签名
public void apply(RequestCallback callBack)
InterActive apply函数参数描述

参数字段描述
callBack回调接口

代码展示

       mInterActive.apply(new RequestCallback())

设置直播间举手状态
方法签名
public void setHandsUp(String status, RequestCallback callBack)
InterActive setHandsUp函数参数描述

参数字段描述
status1允许举手 2禁止举手
callBack回调接口

代码展示

       mInteractive.setHandsUp( "1",null);

开启本地摄像头美颜功能
方法签名
public void setEnableBeautify(boolean enable)
InterActive setEnableBeautify函数参数描述

参数字段描述
enabletrue(开启)/false(关闭)

代码展示

     RtcConfig.getInterActive().setEnableBeautify(true);

设置本地摄像头美颜等级
方法签名
public void setBeautifyLevel(int level) {
InterActive setBeautifyLevel函数参数描述

参数字段描述
level数字越大美颜越重【1-4】

代码展示

      RtcConfig.getInterActive().setBeautifyLevel(3);

房间消息回调 RoomCallbackV2(该回调接口 回调函数均在主线程中)

接口展示

public interface RoomCallbackV2{
        //链接房间成功
        void onDidConnect(Room var1, JSONObject var2);

        //链接房间失败
        void onDidError(Room var1, Room.VHRoomErrorStatus var2, String var3);

        //发布成功
        void onDidPublishStream(Room var1, Stream var2);

        //发布失败
        void onDidUnPublishStream(Room var1, Stream var2);

        //订阅成功
        void onDidSubscribeStream(Room var1, Stream var2);

        //取消订阅
        void onDidUnSubscribeStream(Room var1, Stream var2);

        //流属性发生变更
        void onDidChangeStatus(Room var1, Room.VHRoomStatus var2);

        //有流加入房间
        void onDidAddStream(Room var1, Stream var2);

        //有流移除房间
        void onDidRemoveStream(Room var1, Stream var2);

        //远端流更新音视频属性的回调
        void onDidUpdateOfStream(Stream var1, JSONObject var2);

        //尝试重链
        void onReconnect(int var1, int var2);

        //混流成功
        void onStreamMixed(JSONObject var1);
        }

接口回调重要参数说明

参数字段描述
Room房间的概念
Stream媒体流

代码使用展示

class RoomCallback extends SimpleRoomCallbackV2 {

        @Override
        public void onDidConnect(Room room, JSONObject jsonObject) {
            if(mInteractive != null){
                mInteractive.publish();
            }
        }

        @Override
        public void onDidError(Room room, Room.VHRoomErrorStatus vhRoomErrorStatus, String s) {
            for (Stream stream : room.getRemoteStreams()) {
                removeStream(stream);
            }
        }

        @Override
        public void onDidPublishStream(Room room, Stream stream) {
            //流发布成功更新UI
        }

        @Override
        public void onDidUnPublishStream(Room room, Stream stream) {
            isPublic = false;
            if (updateMainStreamLister != null) {
                updateMainStreamLister.setIsPublic(false);
            }
            streams.remove(new StreamData(stream));
            if (TextUtils.equals(stream.userId, mainId)) {
                mainStream = null;
            }
            setViews();
        }

        @Override
        public void onDidSubscribeStream(Room room, Stream stream) {
            addStream(stream);
        }

        @Override
        public void onDidUnSubscribeStream(Room room, Stream stream) {
            removeStream(stream);
        }

        @Override
        public void onDidChangeStatus(Room room, Room.VHRoomStatus vhRoomStatus) {
            switch (vhRoomStatus) {
                case VHRoomStatusDisconnected:// 异常退出
                    //TODO 销毁页面
                    break;
                case VHRoomStatusError:
                    Log.e("rtc", "VHRoomStatusError");
                    if (getActivity() != null) {
                        baseShowToast("当前房间异常");
                        getActivity().finish();
                    }
                    break;
                case VHRoomStatusReady:
                    break;
                case VHRoomStatusConnected: // 重连进房间
                    break;
                default:
                    break;
            }
        }

        @Override
        public void onDidRemoveStream(Room room, Stream stream) {

        }

        @Override
        public void onDidUpdateOfStream(Stream stream, JSONObject jsonObject) {

        }

        @Override
        public void onStreamMixed(JSONObject jsonObject) {
            //混流成功
        }
    }

互动消息
使用展示

    //自定义消息
    class MessageCallback implements MessageServer.Callback,MessageServer.MessageSupportMsgFilterOther{
        @Override
        public void onEvent(MessageServer.MsgInfo msg) {

            switch (msg.event) {
                case MessageServer.EVENT_RESTART: {
                //直播开始
                break;

                case MessageServer.EVENT_OVER: {
                //直播已结束
                }
                break;

                case MessageServer.EVENT_INTERACTIVE_ALLOW_HAND: {
                //broadcastView.showToast(msg.status == 1 ? "允许用户上麦" : "不允许用户上麦");
                }
                break;
                case MessageServer.EVENT_CONNECT_INVITE_REFUSED:{
                //拒绝了您的邀请
                }
                break;

                case MessageServer.EVENT_INTERACTIVE_HAND: {
                    //互动举手消息
                }
                break;


                case MessageServer.EVENT_KICKOUT: {
                //您已被踢出
                }
                break;


                case EVENT_VRTC_CONNECT_REFUSED:{
                 //主持人拒绝了您的上麦申请
                }
                break;

                case MessageServer.EVENT_DISABLE_CHAT: {
                //您已被禁言
                }
                break;

                case MessageServer.EVENT_PERMIT_CHAT: {
                //您被取消禁言
                }
                break;

                case MessageServer.EVENT_INVITED_MIC: {
                //被邀请上麦
                }
                break;
                case MessageServer.EVENT_SWITCH_DEVICE:
                //切换设备
                    break;
                case MessageServer.EVENT_INTERACTIVE_ALLOW_MIC:
                //接收上麦消息
                    break;
                case MessageServer.EVENT_VRTC_CONNECT_SUCCESS:
                //用户上麦成功
                    break;
                case MessageServer.EVENT_INTERACTIVE_DOWN_MIC:
                //接收下麦消息
                    break;
                case EVENT_VRTC_SPEAKER_SWITCH:
                //互动设置为主讲人
                    break;
            }
        }

        @Override
        public void onMsgServerConnected() {
            //链接成功
        }

        @Override
        public void onConnectFailed() {
            //链接失败
        }

        @Override
        public void onMsgServerClosed() {
            //链接关闭
        }

        @Override
        public boolean isFilterOther() {
        //是否过滤他人消息
            return false;
        }
    }

嘉宾加入房间(since v6.1.0)

方法签名
public static void joinWebinar(String webinarId, String password, String nickname, String type, WebinarInfoDataSource.LoadWebinarInfoCallback callBack)
重要参数说明

参数字段描述
webinarId活动ID(9位) , 在网页上创建
password嘉宾访问密码 控制台获取
nickName自己设置的直播昵称(可以为空)
type2嘉宾 3助理
callBack回调接口

代码展示

 //嘉宾加入
        VhallSDK.joinWebinar(param.watchId, param.guestPwd, VhallSDK.getUserName(), "2", new WebinarInfoDataSource.LoadWebinarInfoCallback() {
            @Override
            public void onWebinarInfoLoaded(String jsonStr, WebinarInfo webinarInfo) {
                RtcActivity.startActivity(MainActivity.this, true, webinarInfo);
                hideLoading();
            }

            @Override
            public void onError(int errorCode, String errorMsg) {
                ToastUtil.showToast(errorMsg);
                hideLoading();
            }
        });
修改于 2025-05-27 11:12:28
上一页
v6.2.0
下一页
v6.0.0
Built with