加入和退出音视频房间
更新时间: 2024/09/09 11:06:51
本文介绍如何通过 NERoom SDK 加入或退出音视频房间。
功能介绍
NERoom SDK 支持通过 joinRtcChannel 加入音视频房间,您可以进行实时音视频通话。
注意事项
- 您需要先调用 joinRoom 方法加入 NERoom 的房间,并且此房间开启了 RTC 房间的配置,即在创建房间时,已在
NECreateRoomOptions
方法中,设置enableRtc
参数为 true,具体操作方法请参见创建房间。 - 加入或退出房间后,房间内其他成员会收到 onMemberJoinRtcChannel 或 onMemberLeaveRtcChannel 回调。
加入音视频房间
配置步骤
- 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。
- 调用 joinRtcChannel 方法加入音视频房间。
示例代码
/**
* 获取房间上下文NERoomContext
* @param roomUuid 房间ID
*/
const NERoomContext = NERoomService.getRoomContext(roomUuid)
NERoomContext.rtcController.joinRtcChannel().then(res => {
console.log(res, 'joinRtcChannel success')
}).catch(err => {
console.error(res, 'joinRtcChannel fail')
})
设置本端主流画布
配置步骤
- 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 - 调用 setupLocalVideoCanvas 方法设置本端主流画布。
示例代码
/**
* 获取房间上下文NERoomContext
* @param roomUuid 房间ID
*/
const NERoomContext = NERoomService.getRoomContext(roomUuid)
const element = document.querySelector(".myVideo");
try {
NERoomContext.rtcController.setupLocalVideoCanvas(element)
} catch (error) {
console.error(error)
}
设置远端主流画布
配置步骤
- 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 - 调用 setupRemoteVideoCanvas 方法设置远端主流画布。调用此方法时,您需要将
userUuid
设置为指定订阅的用户 ID。
示例代码
/**
* 获取房间上下文NERoomContext
* @param roomUuid 房间ID
*/
const NERoomContext = NERoomService.getRoomContext(roomUuid)
const element = document.querySelector(`.${member.uuid}`) || `.${member.uuid}`;
try {
NERoomContext.rtcController.setupRemoteVideoCanvas(element, member.uuid)
} catch (error) {
console.error(error)
}
设置远端辅流画布
配置步骤
- 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 - 调用 setupRemoteSubVideoCanvas 方法设置远端辅流画布。调用此方法时,您需要将
userUuid
设置为指定订阅的用户 ID。
示例代码
/**
* 获取房间上下文NERoomContext
* @param roomUuid 房间ID
*/
const NERoomContext = NERoomService.getRoomContext(roomUuid)
const element = document.querySelector(`.${member.uuid}`) || `.${member.uuid}`;
try {
NERoomContext.rtcController.setupRemoteSubVideoCanvas(element, member.uuid)
} catch (error) {
console.error(error)
}
订阅远端视频主流
配置步骤
-
调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 -
调用 subscribeRemoteVideoStream 方法订阅远端视频主流。
参数 类型 说明 userUuid
string 待订阅视频流的远端用户的 ID。 subscribe
boolean 设置为 true
,开启订阅该远端用户的视频流。
示例代码
/**
* 获取房间上下文NERoomContext
* @param roomUuid 房间ID
*/
const NERoomContext = NERoomService.getRoomContext(roomUuid)
try {
NERoomContext.rtcController.subscribeRemoteVideoStream(member.uuid)
} catch (error) {
console.error(error)
}
取消订阅远端视频主流
配置步骤
- 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 - 调用 unsubscribeRemoteVideoStream 方法取消订阅远端视频主流。调用此方法时,您需要将
userUuid
设置为待取消订阅的用户 ID。
示例代码
/**
* 获取房间上下文NERoomContext
* @param roomUuid 房间ID
*/
const NERoomContext = NERoomService.getRoomContext(roomUuid)
try {
NERoomContext.rtcController.unSubscribeRemoteVideo(member.uuid)
} catch (error) {
console.error(error)
}
订阅远端视频辅流
配置步骤
-
调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 -
调用 subscribeRemoteVideoSubStream 方法订阅远端视频辅流。调用此方法时,您需要将
userUuid
设置为指定订阅的用户 ID,并将subscribe
参数设置为 true 订阅该远端用户的视频辅流。参数 类型 说明 userUuid
string 待订阅视频辅流的远端用户的 ID。 subscribe
boolean - true:开启订阅该远端用户的视频辅流。
- false:关闭订阅该远端用户的视频辅流。
示例代码
/**
* 获取房间上下文NERoomContext
* @param roomUuid 房间ID
*/
const NERoomContext = NERoomService.getRoomContext(roomUuid)
try {
NERoomContext.rtcController.subscribeRemoteVideoSubStream(member.uuid, true)
} catch (error) {
console.error(error)
}
取消订阅远端视频辅流
配置步骤
- 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 - 调用 unsubscribeRemoteVideoSubStream 方法取消订阅远端视频辅流。调用此方法时,您需要将
userUuid
设置为待取消订阅的用户 ID。
示例代码
/**
* 获取房间上下文NERoomContext
* @param roomUuid 房间ID
*/
const NERoomContext = NERoomService.getRoomContext(roomUuid)
try {
NERoomContext.rtcController.unsubscribeRemoteVideoSubStream(member.uuid)
} catch (error) {
console.error(error)
}
退出音视频房间
配置步骤
- 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 - 调用 leaveRtcChannel 方法退出音视频房间。
示例代码
/**
* 获取房间上下文NERoomContext
* @param roomUuid 房间ID
*/
const NERoomContext = NERoomService.getRoomContext(roomUuid)
NERoomContext.rtcController.leaveRtcChannel().then(res => {
console.log(res, 'leaveRtcChannel success')
}).catch(err => {
console.error(res, 'leaveRtcChannel fail')
})
API 参考
方法 | 功能描述 |
---|---|
joinRoom | 加入 NERoom 的房间。 |
getRoomContext | 获取房间上下文。 |
joinRtcChannel | 加入音视频房间。 |
setupLocalVideoCanvas | 设置本端画布。 |
setupRemoteVideoCanvas | 设置远端画布。 |
setupRemoteSubVideoCanvas | 设置远端辅流画布。 |
subscribeRemoteVideoStream | 订阅远端视频主流。 |
unSubscribeRemoteVideoStream | 取消订阅远端视频主流。 |
subscribeRemoteVideoSubStream | 订阅远端视频辅流。 |
unsubscribeRemoteVideoSubStream | 取消订阅远端视频辅流。 |
leaveRtcChannel | 离开音视频房间。 |
onMemberJoinRtcChannel | 成员加入音视频房间回调。 |
onMemberLeaveRtcChannel | 成员加入音视频房间回调。 |
此文档是否对你有帮助?