# 频道操作

# 加入频道

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

接收两个参数,channelnickname, 返回一个Promise对象实例

名称 类型 说明 备注
channel string (opens new window) 需要加入的频道ID 通过服务端接口获取得到
nickname string (opens new window) 加入频道后显示的用户昵称

示例:

let channel = '00001'
let nickname = '参会者_xxx'
Manis.join(channel, nickname).then(res => {
    console.log('joinSuccess: ', res)
    // @TODO 加入频道成功之后应立即注册监听事件, 如果室加入到一个已经有用户的频道, 则会返回频道中已有的流媒体信息
    if (res.remoteStreams && res.remoteStreams.length) {
        for (let i = 0; i < res.remoteStreams.length; i++) {
            let remoteStream = res.remoteStreams[i]
            _this.subscribe(remoteStream) // 使用该媒体信息,调用订阅方法订阅频道中的流媒体
        }
    }
}).catch(err => {
	console.log('joinFailed: ', err)
})

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

# 离开频道

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

返回一个Promise对象实例

示例:

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

# 推送本地流媒体

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

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

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

示例:

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

# 停止推送本地流

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

返回一个Promise对象实例

示例:

/*停止推送本地流媒体*/
Manis.unPublish().then(res => {
    console.log('handle unpublish response: ', res)
}).catch(err => {
    console.log('handle unpublish failed: ', err)
})