开始使用
Orbit 账户的组织方式、控制台各处的功能,以及从登录到让我们的网络开始应答一个域名的最短路径。
本页讲如何加载 Meet SDK、从你自己的页面加入会议、它提供的选项与事件,以及你的页面需要放行什么。
在 Meet 或控制台里创建会议,拿到会议码(abc-defg-hij)。然后给 SDK 一个用来放置会议的元素:
<div id="call" style="height:640px"></div>
<script src="https://meet.yunzheng.space/v1.js"></script>
<script>
var call = OrbitMeet.join({
code: "abc-defg-hij",
name: "Ada",
el: "#call",
onJoined: function (d) { console.log("in the meeting as " + d.role); },
onLeave: function () { console.log("the call is over"); },
onError: function (e) { console.error(e.code || "meet", e.message); }
});
// later: call.leave();
</script>会议运行在该元素内的一个 frame 里:等候室、屏幕共享、字幕与主持人控制一应俱全。你的页面只收到事件——不会拿到会议的媒体或凭据。
token 选项;平台目前尚未签发这类令牌,请不要传。| 选项 | 含义 |
|---|---|
code | 必填。会议码,带不带短横线均可,也可以是包含会议码的任意会议链接。 |
el | 放置位置:元素或选择器,默认 document.body。 |
name | 会议里显示的名字,最多 40 个字符;不给则由来宾自己填写。 |
lang | en 或 zh。 |
width、height | frame 的 CSS 尺寸。默认占满元素,最低 420px 高。 |
title | frame 的无障碍标题,默认 Orbit Meet。 |
onReady、onJoined、onLeave、onError | 四个事件的内联写法,等同于之后调用 on(...)。 |
OrbitMeet.join 返回的对象提供 on(event, fn)、off(event, fn)、leave()(移除 frame)、frame()(iframe;离开后为 null)、code 与 version。
| 事件 | 内联写法 | 时机 | 附带数据 |
|---|---|---|---|
ready | onReady | 会议页面已在 frame 中加载。 | { code } |
joined | onJoined | 已进入通话;若有等候室,则为通过之后。 | { session, role } |
left | onLeave | 离开、被移出或会议结束;SDK 随即移除 frame。 | { session } |
error | onError | 加入被阻止。 | { code, message } 或 { message } |
错误只会被报告,不会被抛出:页面内容里写错的会议码会在你的处理函数里收到一条消息,而不会让你页面的脚本停下。不是会议码的输入会报告为 bad-code,且不会加载任何东西。会议本身拒绝的情况——会议已结束、口令错误、人数已满——会带一条写给人看的 message,可以直接显示。
请用内联的 onError,而不是之后再用 on 添加:无效会议码会在下一个事件循环里报告,内联处理函数这时已经就位。
SDK 创建 frame 时会带上 allow="camera; microphone; display-capture; fullscreen; autoplay"。除非属性里写明,浏览器会对来自其他站点的 frame 拒绝这些权限——所以自己手写、不带这个属性的 iframe 只会显示黑色画面,也没有任何报错。如果你自己构建 iframe,请照抄这个属性。
如果你的页面设置了 Content-Security-Policy,请在 script-src(加载 SDK)与 frame-src(加载会议)中都放行 https://meet.yunzheng.space。如果你的页面发送 Permissions-Policy 头,不要对该来源关闭摄像头或麦克风。
OrbitMeet.link(code) 返回会议自己的地址,可用于在新标签页打开会议的按钮。OrbitMeet.code(input) 把用户输入或粘贴的内容规整为会议码;不是会议码时返回空字符串。