开放平台
首页平台概述
开发者
  • 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.4.0

播放器皮肤#

回放#

因为回放播放器本身是透明的 所以可以直接设置回放播放器父容器的颜色或背景图。

直播#

因为直播播放器默认颜色为黑色,增加设置图片和背景的方法

boolean setVideoBackgroundColor(int color)#

boolean setVideoBackgroundImage(Bitmap bitmap)#

注意设置完图片在设置颜色,颜色会没有效果

设置时机#

需要在直播收到开始回调的时候设置
 private class WatchCallback implements VHPlayerListener {
        @Override
        public void onStateChanged(com.vhall.player.Constants.State state) {
            switch (state) {
                case START:
                  InputStream is = watchView.getActivity().getResources().openRawResource(R.drawable.splash_bg);
                    Bitmap mBitmap = BitmapFactory.decodeStream(is);
                    if (!watchLive.setVideoBackgroundImage(mBitmap)) {
                        ToastUtil.showToast("设置失败");
                    } else {
                        ToastUtil.showToast("设置成功");
                    }
                    break;

互动权限修改#

嘉宾和观众进入互动不在直接要求权限,改为申请上麦或者同意上麦的时候由观众自己做权限判断
这个方法必须 有权限 才可以调用 用户使用过程需要注意权限否则会导致没有声音和画面,甚至崩溃;
注意
直播过程中 关闭权限会导致 app重启 所有链接断开 导致用户收不到消息 ,需要重新进入直播间才可以

云导播#

注:sdk 6.4.0之后支持 云导播功能#

云导播

接口:获取活动基础信息,用于判断当前活动是否是云导播#

参数字段描述
id活动详情
void getBaseWebinarInfo(final String id, final RequestDataCallback callback)
WebinarBaseInfoData 返回信息`

接口:获取云导播开关#

开启状态才可以选机位
参数字段描述
id活动id
void getDirectorStatus(final String id, final RequestDataCallback callback)

返回信息 sting
 云导播台状态, 0: 未开启, 1:已开启

接口:获取当前云导播活动下的机位列表#

参数字段描述
id活动id
void getDirectorSeatList(final String id, final RequestDataCallback callback)

DirectorSeatListData 返回信息

接口:占用当前云导播活动下的机位#

参数字段描述
id活动id
seatId占用当前机位的id
void directorSelectSeat(final String id, final String seatId, final RequestCallback callback)

 无返回 接口调用成功则代表机位可以占用

接口:初始化房间详情,机位进入房间,调用接口(只机位使用)#

参数字段描述
id活动id
seatId占用当前机位的id
void initDirector(final String id, final String seatId, final WebinarInfoDataSource.LoadWebinarInfoCallback callback)

WebinarInfo 返回信息

使用文档#

一、根据活动id判断当前云导播活动是否开启#

判读是否是云导播,否退出,是调用接口VhallSDK.getDirectorStatus 获取云导播开关,获取当前是否支持机位进入
选择主持人进入 initBroadcast
如果当前云导播台开启(getDirectorStatus),可以选择机位进入,如果没开则不可以选择机位
拉取机位列表(getDirectorSeatList),选择一个没有被占用的机位,占用(directorSelectSeat),然后进入房间推流(initDirector)

二、机位进入#

1、先根据活动id获取机位列表 VhallSDK.getDirectorSeatList#

2、选择一个可用的机位,然后占用机位#

进入机位推流房间 DirectorPushActivity,使用 VhallSDK.initDirector获取房间详情#

机位注意#

1.
断网或者推到后台会中断推流,再回到前台或者网络重联的时候需要重新调用 2占用机位, 判断是否可以继续占用机位推流,可以继续推流不可以 直接退出房间
2.
当前房间只能推流 不支持聊天等其他操作

三、主持人进入#

云导播主持人

1、依照之前逻辑 进入BroadcastActivity#

2、根据当前活动是云导播活动,进入DirectorFragment#

3、直播间不能推流,只能拉流显示 具体参考DirectorFragment、DirectorPresenter#

需要使用 WatchLive

问答、问卷修改#

消息#

//有人提交问卷 messageInfo.user_id 提交人的id

获取当前活动下当场开播场次下 历史问卷接口 since 6.4.0#

禁言信息 demo层使用说明#

//是否可以聊天
private boolean canSpeak = true;
//全体禁言
private boolean chatALLForbid = true;
//私人禁言
private boolean chatOwnForbid = true;
//是否可以 发问答
private boolean canSpeakQa = true;

1、从初始化房间拿到 初始化结果#

2、根据消息时时修改 (问答开关新增 messageInfo.question_name 替换问答两个字)#

case MessageServer.EVENT_DISABLE_CHAT://禁言
 watchView.showToast("您已被禁言");
 canSpeak = false;
 chatOwnForbid = true;
 break;
case MessageServer.EVENT_PERMIT_CHAT://解除禁言
 watchView.showToast("您已被解除禁言");
 chatOwnForbid = false;
 canSpeak = !chatALLForbid;
 break;
case MessageServer.EVENT_CHAT_FORBID_ALL://全员禁言
//问答状态 根据全体禁言判断 如果开启禁言择不可以发送问答 如果关闭择根据 qa_status判断 1开启禁言 0关闭
if (messageInfo.status == 0) {
    //取消全员禁言
 watchView.showToast("解除全员禁言");
 canSpeak = !chatOwnForbid;
 chatALLForbid = false;
 canSpeakQa = true;
} else {
    //全员禁言
 watchView.showToast("全员禁言");
 chatALLForbid = true;
 canSpeakQa = !TextUtils.equals("1", messageInfo.qa_status);
 canSpeak = false;
}
 break;
case MessageServer.EVENT_QUESTION: // 问答开关
 String question_name = "问答";//默认显示 可以自己按照需求设置
 if (!TextUtils.isEmpty(messageInfo.question_name)) {
        question_name = messageInfo.question_name;
 }
    watchView.showToast(question_name + "功能已" + (messageInfo.status == 0 ? "关闭" : "开启"));

3、发送消息或者问答的时候 根据状态过滤#

//问答
   if (!canSpeakQa) {
        watchView.showToast("你被禁言了");
 return;
 }
 //消息
if (!canSpeak) {
        watchView.showToast("你被禁言了");
 return;
 }
修改于 2025-05-27 11:22:09
上一页
更新记录
下一页
v6.3.0
Built with