加入和退出音视频房间

更新时间: 2024/09/09 11:06:51

本文介绍如何通过 NERoom SDK 加入或退出音视频房间。

功能介绍

NERoom SDK 支持通过 joinRtcChannel 加入音视频房间,您可以进行实时音视频通话。

注意事项

  1. 您需要先调用 joinRoom 方法加入 NERoom 的房间,并且此房间开启了 RTC 房间的配置,即在创建房间时,已在NECreateRoomOptions方法中,设置enableRtc 参数为 true,具体操作方法请参见创建房间
  2. 加入或退出房间后,房间内其他成员会收到 onMemberJoinRtcChannelonMemberLeaveRtcChannel 回调。

加入音视频房间

配置步骤

  1. 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。
  2. 调用 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')
})

设置本端主流画布

配置步骤

  1. 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。
  2. 调用 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)
}

设置远端主流画布

配置步骤

  1. 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。
  2. 调用 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)
}

设置远端辅流画布

配置步骤

  1. 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。
  2. 调用 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)
}

订阅远端视频主流

配置步骤

  1. 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。

  2. 调用 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)
}

取消订阅远端视频主流

配置步骤

  1. 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。
  2. 调用 unsubscribeRemoteVideoStream 方法取消订阅远端视频主流。调用此方法时,您需要将 userUuid 设置为待取消订阅的用户 ID。

示例代码

/**
 * 获取房间上下文NERoomContext
 * @param roomUuid 房间ID
 */
const NERoomContext = NERoomService.getRoomContext(roomUuid)

try {
    NERoomContext.rtcController.unSubscribeRemoteVideo(member.uuid)
} catch (error) {
    console.error(error)
}

订阅远端视频辅流

配置步骤

  1. 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。

  2. 调用 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)
}

取消订阅远端视频辅流

配置步骤

  1. 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。
  2. 调用 unsubscribeRemoteVideoSubStream 方法取消订阅远端视频辅流。调用此方法时,您需要将 userUuid 设置为待取消订阅的用户 ID。

示例代码

/**
 * 获取房间上下文NERoomContext
 * @param roomUuid 房间ID
 */
const NERoomContext = NERoomService.getRoomContext(roomUuid)

try {
    NERoomContext.rtcController.unsubscribeRemoteVideoSubStream(member.uuid)
} catch (error) {
    console.error(error)
}

退出音视频房间

配置步骤

  1. 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。
  2. 调用 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 成员加入音视频房间回调。
此文档是否对你有帮助?
有帮助
去反馈
  • 功能介绍
  • 注意事项
  • 加入音视频房间
  • 配置步骤
  • 示例代码
  • 设置本端主流画布
  • 配置步骤
  • 示例代码
  • 设置远端主流画布
  • 配置步骤
  • 示例代码
  • 设置远端辅流画布
  • 配置步骤
  • 示例代码
  • 订阅远端视频主流
  • 配置步骤
  • 示例代码
  • 取消订阅远端视频主流
  • 配置步骤
  • 示例代码
  • 订阅远端视频辅流
  • 配置步骤
  • 示例代码
  • 取消订阅远端视频辅流
  • 配置步骤
  • 示例代码
  • 退出音视频房间
  • 配置步骤
  • 示例代码
  • API 参考