( 最近更新时间:2020-04-28 19:00:00 )
# 加入房间
- 创建直播间前需要先实例化
Room
实例。 - 加入房间, 每个
RongRTC
实例只允许加入 一个房间。 - 主播端首先调用 room.join 接口创建一个直播类型房间。
代码示例
实例化
var room = new Room({ id: 'roomId', joined: function(user){ // user.id 加入房间 }, left: function(user){ // user.id 离开房间 } });
已复制
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
加入房间
room.join({id: '请填写用户 ID',}).then(() => { console.log('join successfully'); }, error => { console.log(error); });
已复制
1
2
3
4
5
2
3
4
5
# 发布资源
- 发布资源需要先实例化
Stream
实例,实例化Stream
后可获得stream
实例。stream
实例下有对媒体流进行操作的方法,例如发布与订阅等 - 加入房间成功后您可以通过
stream.get()
获取本地视频,在通过stream.publish()
发布本地音视频流。 - 用户发布视频流、取消视频流将会触发实例化时设置的回掉函数:
published
、unpublished
- 直播模式,调用
stream.publish()
接口发布资源,发布成功之后会返回liveUrl
,liveUrl
提供当前直播的直播地址,可以存储到应用的 App Server , 观众端拿着这个地址就可以观看该主播的直播。
代码示例
实例化 Stream
let stream = new Stream({ /* 成员已发布资源,此时可按需订阅 */ published: function(user){ stream.subscribe(user).then((user) => { let {id, stream: {tag, mediaStream}} = user; let node = document.createElement('video'); node.srcObject = mediaStream; // 将 node 添加至页面或指定容器 }); }, /* 成员已取消发布资源,此时需关闭流 */ unpublished: function(user){ stream.unsubscribe(user); }, });
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
发布直播资源
stream.get().then(function ({ mediaStream }) { let user = { id: '请填写用户 ID', stream: { tag: 'RongCloudRTC', type: StreamType.AUDIO_AND_VIDEO, mediaStream: mediaStream } } stream.publish(user).then((result) => { //result 数据格式:{"configUrl":"XXX","liveUrl":"XXXX"} 此处可获得到 liveUrl console.log('发布成功',result); }, error => { console.log(error); }); }, error => { console.error(error); });
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 取消发布
取消发布资源,其他用户会在 Stream
实例化的 unpublished
回调中收到用户取消发布的信息,需要按需调用取消发布。
代码示例
let user = { id: '请填写用户 ID', stream: { tag: 'RongCloudRTC', type: StreamType.AUDIO_AND_VIDEO } }; stream.unpublish(user).then(result => { console.log('取消发布成功'); }, error => { console.log(error); });
已复制
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 离开房间
- 必须在成功或失败回调完成之后再开始下一次加入房间逻辑。
- 离开 RTC 房间,退出后将不能再与其他成员进行音视频通话。
代码示例
room.leave().then(() => { console.log('leave successfully'); }, error => { console.log(error); });
已复制
1
2
3
4
5
2
3
4
5