快速开始

引入微吼直播SAAS jssdk


<script src="//cnstatic01.e.vhall.com/jssdk/dist/3.0.7/VhallSDK.js"></script>

同时支持 http, https 协议

初始化 微吼SDK


var vhallSDK = new VhallSDK({
    app_key: '123123asdasdcas34dfsJsadXV', // APP Key
    signedat: getQueryString('signedat'), // 用户签名时间
    sign: '123123asdasdcas34dfsJsadXV', // 服务器签名
    roomid: 房间id, // 直播,回放,点播等房间ID
    account: 12312, // 用户参会id
    email: getQueryString('email'), // 可选 - 用户邮箱
    username: vhall, // 用户昵称
    videoContent: '#video', // 播放器dom 节点ID
    docContent: '#docWrap', // 文档展示dom 节点id
    questionarieContainer: '#questionWrap', // 问卷dom 容器ID
    plugins: [ 'chat', 'doc', 'player', 'interactTools'], // SDk 功能列表 ,必须全选
    x5_video_fullscreen: true, // 非必填,启用腾讯H5全屏方式 true开启 false关闭 ,默认false
    x5_video_type: true // //非必填,启用腾讯H5同层播放器 true开启 false关闭 ,默认false
})


SDK 初始化参数说明

参数 类型 说明 是否必填 备注
app_key String 微吼直播开放平台应用key 点击获取AppKey
signedat String 微吼直播JSSDK签名时间戳
sign String 微吼直播JSSDK签名时间戳 签名生成算法见下方
roomid Number、String 微吼直播活动ID
account Number 用户ID
email String 用户Email
username String 用户昵称
videoContent String 播放器Dom id 例如: #video-content
docContent String 文档区域Dom id 例如: #doc-area
questionarieContainer String 问卷容器Dom id 如: #question-id
plugins Array 微吼直播功能列表 如: [ 'chat', 'player', 'doc','interactTools']
x5_video_fullscreen Boolean 启用腾讯H5全屏方式 默认:false。 true开启 ,false关闭
x5_video_type Boolean 启用腾讯H5同层播放器 默认:false。 true开启 ,false关闭

SDK签名(sign)说明

Sign 是微吼直播JSSDK,所有功能必须参数。 作为用户使用微吼直播SDK的唯一合法凭证。 签名有效期为有一个小时。

参与签名参数

字段名称 字段说明 备注
roomid 微吼直播 活动ID
account 用户账号
username 用户昵称
app_key 微吼直播 开放平台用户应用Key 点击获取AppKey
secret_key 微吼直播 开放平台用户应用secret_key 点击获取AppKey
signedat 签名调用时的当前时间戳(精确到秒) 示例代码:

签名算法规则

规则序号 规则 备注
1 按参数名升序排列
2 将参与签名的参数 以 Key + Value 形式顺序拼接
3 在参数拼接完成后的字符串首尾各加上secret_key
4 将第三步的得到的字符串进行 md5 加密得到Sign

签名生成示例代码 PHP

<?php
$secret_key = "f145b675f441cc00dd3e55746a0f4780";
$params = [
    "roomid"=> "123456789",
    "account"=> "12345",
    "username"=> "zhangsan",
    "app_key"=> "3eb72619af748d73f7fda1e6b0c692a9",
    "signedat"=> "1484620708"
];

// 按参数名升序排列
ksort($params);

// 将键值组合
array_walk($params,function(&$value,$key){
	$value = $key . $value;
});

// 拼接,在首尾各加上$secret_key,计算MD5值
$sign = md5($secret_key . implode('',$params) . $secret_key);

// 结果形如
$sign=md5("f145b675f441cc00dd3e55746a0f4780account12345app_key3eb72619af748d73f7fda1e6b0c692a9emailzhangsan@vhall.comroomid123456789signedat1484620708usernamezhangsanf145b675f441cc00dd3e55746a0f4780");

// 计算结果
// $sign = '92eec52c58b9bddc0ba663c75a3c1f7f'; 

签名生成示例代码 Java

    String secret_key = "f145b675f441cc00dd3e55746a0f4780";
    String roomid = "123456789";
    String account = "12345";
    String username = "zhangsan";
    String app_key = "3eb72619af748d73f7fda1e6b0c692a9";
    String signedat = "1484620708";
    String email = "zhangsan@vhall.com";

    Map<String, String> paramMap = new HashMap<String, String>();
    paramMap.put("roomid",roomid);
    paramMap.put("account",account);
    paramMap.put("username",username);
    paramMap.put("app_key",app_key);
    paramMap.put("signedat",signedat);
    paramMap.put("email",email);

    String[] keyArray = paramMap.keySet().toArray(new String[0]);
    Arrays.sort(keyArray);
    StringBuilder stringBuilder = new StringBuilder();
    stringBuilder.append(secret_key);
    for (String key : keyArray) {
        stringBuilder.append(key).append(paramMap.get(key));
    }
    stringBuilder.append(secret_key);
    String signSource = stringBuilder.toString();
    MessageDigest md = MessageDigest.getInstance("MD5");//获取MD5实例
    md.update(signSource.getBytes());//此处传入要加密的byte类型值
    byte[] result = md.digest();//此处得到的是md5加密后的byte类型值

    StringBuilder sb = new StringBuilder(32);
    int i;
    for (int offset = 0; offset < result.length; offset++) {//做相应的转化(十六进制)
        i = result[offset];
        if (i < 0) i += 256;
        if (i < 16) sb.append("0");
        sb.append(Integer.toHexString(i));
    }
    String str_md5 = sb.toString();
    System.out.println(str_md5);

安全说明

MD5(Message Digest Algorithm )为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)。该算法为单向不可逆算法。

为增加签名安全系数, 微吼直播参与签名字符串长度为130+,并为sign 设置了1小时时间时效,靠碰撞检测得出相同sign 的难度为130+的阶乘(极其耗费算力)。请各位开放平台用户放心使用。

浏览器兼容性

浏览器 版本 备注
Chrome 74版本及以上
safari 12版本及以上
FireFox 79版本及以上
edge 84 版本及以上
IE 10 版本及以上 需在项目中首先引入//cnstatic01.e.vhall.com/vhall-new-saas/static/polyfill.js?v=20201111 兼容IE10及以上版本
360 急速浏览器 全版本
手Q 内部浏览器 全版本
微信内置浏览器 全版本
其他手机浏览器 绝大部分支持 如遇问题请联系商务或邮件我们

其他未涉及浏览器可能出现兼容性问题。 问题反馈联系客服