# 频道操作

# 加入频道

使用Promise (opens new window) Manis.join(channel, nickname)加入到频道,

接收三个必选参数,channel,nicknameuserId, 返回一个Promise对象实例

名称 类型 说明 备注
channel string (opens new window) 需要加入的频道ID 通过服务端接口获取得到
nickname string (opens new window) 加入频道后显示的用户昵称
userId string (opens new window) 用户唯一标识
layout string (opens new window) 会议视频窗口(远端)布局 可选参数, 布局ID,默认是allEqualNinths (stacked 堆叠布局,allEqualQuarters 4分屏,allEqualNinths 9分屏,allEqualSixteenths 16分屏)
resolution json (opens new window) 会议视频窗口(远端)分辨率 可选参数, 分辨率对象{width: '1280', height: '720'}

示例:

const ramdomNum = Math.floor(Math.random() * 9999)
const channel = ramdomNum
const nickname = '参会者_' +ramdomNum
const userId = 'User_' + ramdomNum
const layout = 'allEqualNinths'
const resolution = {
  width: 1280,
  heght: 720
}
Manis.join(channel, nickname, userId, layout, resolution).then(resp => {
  console.log('加入频道成功: ', resp)
  // 返回当前用户对象
}).catch(err => {
  console.log('加入失败: ', err)
})

注意: 在调用加入频道返回成功之后,应立即订阅事件,以备即时收到频道内的事件推送。也可以在初始化完成之后就完成事件订阅 注意: 在调用加入频道返回成功之后,应立即订阅事件,以备即时收到频道内的事件推送。也可以在初始化完成之后就完成事件订阅

# 离开频道

使用Promise (opens new window) Manis.leave()离开频道,

返回一个Promise对象实例

示例:

Manis.leave().then(resp => {
    // @TODO 销毁页面渲染的媒体标签,释放资源
}).catch(err => {
    console.error('捕获错误: ', err)
})

# 推送本地流媒体

使用Promise (opens new window)Manis.createMicrophoneAndCameraTracks()构建本地基于摄像头和麦克风的流媒体资源,

接收媒体资源信息remoteStream和可选参数订阅选项subscribeOptions,返回一个Promise对象实例

名称 类型 说明 备注
localStream Object (opens new window) 本地流媒体资源

示例:

/*将构建的本地流媒体推送到频道*/
Manis.publish(localStream).then(resp => {
    console.log('推流成功: ', resp)
}).catch(error => {
    console.error('推流失败: ', error)
})

# 停止推送本地流

使用Promise (opens new window)Manis.unPublish()停止推送本地流媒体,

返回一个Promise对象实例

示例:

/*停止推送本地流媒体*/
Manis.unPublish().then(res => {
    console.log('停止推流成功: ', res)
}).catch(err => {
    console.log('停止推流失败: ', err)
})