界面
场景
new Scene(id, options)
初始化场景
参数:
{String} id 【必选】根渲染节点的DOM id
{Object} options 【必选】渲染参数,options的参数如下表
options参数如下表
参数 | 类型 | 是否必选 | 说明 |
---|---|---|---|
server | string | 必选 | 服务地址 |
autoStop | boolean | 可选 | 是否30秒不操作自动断开连接,默认false |
entrance | boolean | 可选 | 是否自动播放入场动画,默认false |
netStats | boolean | 可选 | 是否显示网络状态,默认false |
fullscreen | boolean | 可选 | 是否显示全屏按钮,默认false |
leaveTips | boolean | 可选 | 离开页面(关闭、刷新)是否提示,默认false |
audio | boolean | 可选 | 开启声音,默认 true |
audioPermissionTips | boolean | 可选 | 当无声音播放的权限时,是否要弹窗提示 |
turnServer | object | 可选 | 是否使用公网访问 |
enable | boolean | 可选 | 启用公网访问,默认 false |
urls | string,array | 可选 | TURN服务器地址,可以是字符串,也可以是数组 |
name | string | 可选 | 用户名 |
pass | string | 可选 | 密码 |
sync | boolean | 可选 | 是否多客户端场景消息同步,默认false |
syncServer | string | 可选 | 消息同步的Server |
syncClientId | string | 可选 | 标识客户端的Id,字符类型,默认为客户端的指纹信息 |
keyboardIgnoreList | array | 可选 | 设置要忽略的按键(忽略的不会将按键指令发送到后台) 默认:["F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", "Tab", "`"] |
返回:
- 实例化的scene对象
详情:
通过传入DOM id和渲染参数,调用 new Scene(id, options)
生成场景。
- 示例:
html
<body>
<div id="kapi-container"></div>
</body>
js
import KAPI from '@ibrucekong/kapi'
const kapi = await KAPI.build('Your Auth Token')
const scene = new kapi.Scene('kapi-container', { server: 'Your Service URL' })
console.log(scene)
ready()
等待场景初始化完成。
参数:
{Number} timeout 超时时间,默认30秒,最低5秒
返回:
- 场景初始化是否完成的状态信息
详情:
云渲染场景加载需要一定的时间完成场景加载,在初始化后,需要等待场景加载好,速度根据当前电脑和网络的带宽有关。
- 示例:
js
import KAPI from '@ibrucekong/kapi'
const kapi = await KAPI.build('Your Auth Token')
const scene = new kapi.Scene('kapi-container', { server: 'Your Service URL' })
// 设置10秒的超时等待时间
const readyState = await scene.ready(10)
console.log(readyState)
getResolution()
获取当前场景的分辨率。
返回:
- 当前场景的分辨率信息
详情:
获取当前场景的分辨率信息,包括云流的原始分辨率、当前DOM的分辨率。
- 示例:
js
import KAPI from '@ibrucekong/kapi'
const kapi = await KAPI.build('Your Auth Token')
const scene = new kapi.Scene('kapi-container', { server: 'Your Service URL' })
const readyState = await scene.ready()
if (readyState.code !== 200) return
const resolution = await scene.getResolution()
console.log(resolution)
setResolution()
设置当前场景的分辨率。
参数:
{Number} width 云流的宽度
{Number} height 云流的高度
{Boolean} sync 是否要与其他客户端同步状态
返回:
- 设置当前场景分辨率是否成功的信息
详情:
设置当前场景的分辨率,修改后需要重新连接云流服务,即刷新页面。
- 示例:
js
import KAPI from '@ibrucekong/kapi'
const kapi = await KAPI.build('Your Auth Token')
const scene = new kapi.Scene('kapi-container', { server: 'Your Service URL' })
const readyState = await scene.ready()
if (readyState.code !== 200) return
const resolution = await scene.setResolution(1920, 1080)
console.log(resolution)
startEntrance()
开始入场动画。
参数:
{Boolean} sync 是否要与其他客户端同步状态
返回:
- 开始入场动画是否成功的状态
详情:
当前的入场动画是手动执行,如果想在场景初始化好就执行动画,有两种方案:
1、在初始化场景时,设置options.entrance
为true
,系统在初始化好自动开启动画
2、在调用scene.ready()
之后调用scene.startEntrance()
也能实现开启动画的效果
- 示例:
js
import KAPI from '@ibrucekong/kapi'
const kapi = await KAPI.build('Your Auth Token')
const scene = new kapi.Scene('kapi-container', { server: 'Your Service URL' })
const readyState = await scene.ready()
if (readyState.code !== 200) return
const entrance = await scene.startEntrance()
console.log(entrance)
pauseEntrance()
暂停入场动画。
参数:
{Boolean} sync 是否要与其他客户端同步状态
返回:
- 暂停入场动画是否成功的状态
详情:
暂停当前的入场动画特效
- 示例:
js
import KAPI from '@ibrucekong/kapi'
const kapi = await KAPI.build('Your Auth Token')
const scene = new kapi.Scene('kapi-container', { server: 'Your Service URL' })
const readyState = await scene.ready()
if (readyState.code !== 200) return
// 开始
const entrance = await scene.startEntrance()
// 暂停 - 10秒后暂停动画
setTimeout(async e => {
const pauseEntrance = await scene.pauseEntrance()
console.log(pauseEntrance)
}, 10 * 1000)
stopEntrance()
停止入场动画。
参数:
{Boolean} sync 是否要与其他客户端同步状态
返回:
- 停止入场动画是否成功的状态
详情:
停止当前的入场动画特效
- 示例:
js
import KAPI from '@ibrucekong/kapi'
const kapi = await KAPI.build('Your Auth Token')
const scene = new kapi.Scene('kapi-container', { server: 'Your Service URL' })
const readyState = await scene.ready()
if (readyState.code !== 200) return
// 开始
const entrance = await scene.startEntrance()
// 停止 - 10秒后停止动画
setTimeout(async e => {
const stopEntrance = await scene.stopEntrance()
console.log(stopEntrance)
}, 10 * 1000)
showGrid()
显示当前场景的网格数据。
因为每个工程、项目对网格的范围不一样,所以这块需要定制开发。
参数:
{Boolean} sync 是否要与其他客户端同步状态
返回:
- 当前场景的网格数据是否显示成功
详情:
显示当前场景的网格数据,以三维的形式显示出来,比常规二维的网格显示效果更佳。
- 示例:
js
import KAPI from '@ibrucekong/kapi'
const kapi = await KAPI.build('Your Auth Token')
const scene = new kapi.Scene('kapi-container', { server: 'Your Service URL' })
const readyState = await scene.ready()
if (readyState.code !== 200) return
// 显示网格
const grid = await scene.showGrid()
console.log(grid)
hideGrid()
隐藏当前场景的网格数据。
参数:
{Boolean} sync 是否要与其他客户端同步状态
返回:
- 当前场景的网格数据是否隐藏成功
详情:
隐藏当前场景的网格数。
- 示例:
js
import KAPI from '@ibrucekong/kapi'
const kapi = await KAPI.build('Your Auth Token')
const scene = new kapi.Scene('kapi-container', { server: 'Your Service URL' })
const readyState = await scene.ready()
if (readyState.code !== 200) return
// 显示网格
const grid = await scene.showGrid()
// 隐藏网格 - 10秒后隐藏网格
setTimeout(async e => {
const hideGrid = await scene.hideGrid()
console.log(hideGrid)
}, 10 * 1000)
mute()
设置当前场景为静音状态。
参数:
{Boolean} sync 是否要与其他客户端同步状态
返回:
- 设置为静音是否成功
详情:
设置当前场景为静音状态。
- 示例:
js
import KAPI from '@ibrucekong/kapi'
const kapi = await KAPI.build('Your Auth Token')
const scene = new kapi.Scene('kapi-container', { server: 'Your Service URL' })
const readyState = await scene.ready()
if (readyState.code !== 200) return
// 显示网格
const mute = await scene.mute()
console.log(mute)
unmute()
解除当前场景的静音状态,即开启声音。
参数:
{Boolean} sync 是否要与其他客户端同步状态
返回:
- 解除静音是否成功
详情:
解除当前场景的静音状态,即开启声音。
- 示例:
js
import KAPI from '@ibrucekong/kapi'
const kapi = await KAPI.build('Your Auth Token')
const scene = new kapi.Scene('kapi-container', { server: 'Your Service URL' })
const readyState = await scene.ready()
if (readyState.code !== 200) return
// 显示网格
const unmute = await scene.unmute()
console.log(unmute)
destroy()
销毁当前场景。
返回:
- 销毁场景是否成功
详情:
销毁当前场景。
- 示例:
js
import KAPI from '@ibrucekong/kapi'
const kapi = await KAPI.build('Your Auth Token')
const scene = new kapi.Scene('kapi-container', { server: 'Your Service URL' })
const readyState = await scene.ready()
if (readyState.code !== 200) return
// 显示网格
const destroy = await scene.destroy()
console.log(destroy)