用于实现小程序内多人音视频对话的功能。
小程序管理后台,「开发」-「接口设置」中自助开通该组件权限。相关接口 wx.joinVoIPChat 和组件 voip-room。
开发者仅需提供房间唯一标识,即可加入到指定的房间。传入相同唯一标识的用户,会进到相同的房间。为了保证前端传入的 groupId 可信,wx.joinVoIPChat 接口要求传入签名。详见下文 签名算法。当加入视频房间时,可结合 voip-room 组件显示成员画面。
生成签名需要传入四个参数:
参数名 | 说明 |
---|---|
appId | 小游戏的 appId |
groupId | 游戏房间的唯一标识,由游戏自己保证唯一 |
nonceStr | 随机字符串,长度应小于 128 |
timeStamp | 生成这个随机字符串的 UNIX 时间戳(精确到秒) |
签名算法为:
signature = hmac_sha256([appId, groupId, nonceStr, timeStamp].sort().join(""), sessionKey)
具体来说,这个算法分为几个步骤:
示例:
appId = "wx20afc706a711eefc"
groupId = "1559129713_672975982"
nonceStr = "8AP6DT9ybtniUJfb"
timeStamp = "1559129714"
session_key = "gDyVgzwa0mFz9uUP7M6GQQ=="
str = [appId, groupId, nonceStr, timeStamp].sort().join("") = "1559129713_67297598215591297148AP6DT9ybtniUJfbwx20afc706a711eefc"
signature = hmac_sha256("1559129713_67297598215591297148AP6DT9ybtniUJfbwx20afc706a711eefc", sessionKey) = "b002b824688dd8593a6079e11d8c5e8734fbcb39a6d5906eb347bfbcad79c617"
在云开发中,无法获取 session_key,但提供了单独的函数 cloud.getVoIPSign 来计算签名。
const cloud = require("wx-server-sdk")
cloud.init()
exports.main = async (event, context) => {
const signature = cloud.getVoIPSign({
groupId: "xxx",
timestamp: 123,
nonce: "yyy"
})
return signature
}
每个房间最多同时加入 10 个人。
对于每个小程序,每天最多允许创建 100000 个房间。当所有人退出房间时,房间即被销毁。此时如果传入之前用过的 groupId 重新加入房间,会被计算为新开一个房间。
开发必读商家接入准备小程序进行微信认证开通事件推送,设置事件地址:登录小程序后台,开发-开发设置-消息推送-启用消息加密方...
do ... while循环类似于while循环。在while循环中,循环连续条件在循环开始时测试,然后再执行循环体。do...while语句在执行循环...
在 Electron ,你可以使用 Widevine CDM 插件装载 Chrome 浏览器 .获取插件Electron 没有为 Widevine CDM 插件 配制许可 reasons...
由于Tableau帮助我们分析许多时间段,维度和度量的大量数据,因此需要非常细致的规划来创建良好的仪表板或故事。因此重要的是要...
Tableau中的数据提取从数据源创建数据子集。 这有助于通过应用过滤器来提高性能。 它还有助于将Tableau的某些功能应用于数据源中...