加入和退出音视频房间
更新时间: 2022/10/31 07:43:46
本文介绍如何通过 NERoom SDK 加入或退出音视频房间。
功能介绍
NERoom SDK 支持通过 joinRtcChannel 加入音视频房间,您可以进行实时音视频通话。
前提条件
您需要先调用 joinRoom 方法加入 NERoom 的房间,并且此房间开启了 RTC 房间的配置,即在创建房间时,已在NECreateRoomOptions
方法中,设置enableRtc
参数为 true,具体操作方法请参见创建房间。
加入音视频房间
配置步骤
- 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 - 调用 joinRtcChannel 方法加入音视频房间。
示例代码
auto context = m_pRoomKit->getRoomService()->getRoomContext(roomUuid);
if(context){
context->getRtcController()->joinRtcChannel();
}
设置本端主流画布
配置步骤
- 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 - 调用 setupLocalVideoCanvas 方法设置本端主流画布。
示例代码
auto context = m_pRoomKit->getRoomService()->getRoomContext(roomUuid);
if(context){
context->getRtcController()->setupLocalVideoCanvas(true);
}
设置远端主流画布
配置步骤
- 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 - 调用 setupRemoteVideoCanvas 方法设置远端主流画布。调用此方法时,您需要将
userUuid
设置为指定订阅的用户 ID,并设置bSetUp
为true。
示例代码
std::string userUuid = "123";
auto context = m_pRoomKit->getRoomService()->getRoomContext(roomUuid);
if(context){
context->getRtcController()->setupRemoteVideoCanvas(userUuid, true);
}
设置本端辅流画布
配置步骤
- 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 - 调用 setupLocalSubVideoCanvas 方法设置远端辅流画布。调用此方法时,设置
bSetUp
为true。
示例代码
// 设置远端辅流画布 可观看到成员的屏幕共享画面
auto context = m_pRoomKit->getRoomService()->getRoomContext(roomUuid);
if(context){
context->getRtcController()->setupLocalSubVideoCanvas(true);
}
设置远端辅流画布
配置步骤
- 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 - 调用 setupRemoteSubVideoCanvas 方法设置远端辅流画布。调用此方法时,您需要将
userUuid
设置为指定订阅的用户 ID,并设置bSetUp
为true。
示例代码
// 设置远端辅流画布 可观看到成员的屏幕共享画面
std::string userUuid = "123";
auto context = m_pRoomKit->getRoomService()->getRoomContext(roomUuid);
if(context){
context->getRtcController()->setupRemoteSubVideoCanvas(userUuid, true);
}
订阅远端视频主流
配置步骤
- 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 - 调用 subscribeRemoteVideoStream 方法订阅远端视频主流。调用此方法时,您需要将
userUuid
设置为指定订阅的用户 ID,并设置bHighStream
参数,true表示大流, false表示小流
示例代码
// 只有订阅远端视频 才能看到房间成员画面
std::string userUuid = "123";
auto context = m_pRoomKit->getRoomService()->getRoomContext(roomUuid);
if(context){
context->getRtcController()->subscribeRemoteVideoStream(userUuid, true);
}
取消订阅远端视频主流
配置步骤
- 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 - 调用 unsubscribeRemoteVideoStream 方法取消订阅远端视频主流。调用此方法时,您需要将
userUuid
设置为指定订阅的用户 ID。
示例代码
std::string userUuid = "123";
auto context = m_pRoomKit->getRoomService()->getRoomContext(roomUuid);
if(context){
context->getRtcController()->unsubscribeRemoteVideoStream(userUuid);
}
订阅远端视频辅流
配置步骤
- 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 - 调用 subscribeRemoteSubVideoStream 方法订阅远端视频辅流。调用此方法时,您需要将
userUuid
设置为指定订阅的用户 ID
示例代码
// 只有订阅成员的远端辅流,才能通过设置远端辅流画布看到成员的屏幕共享画面
std::string userUuid = "123";
auto context = m_pRoomKit->getRoomService()->getRoomContext(roomUuid);
if(context){
context->getRtcController()->subscribeRemoteVideoStream(userUuid);
}
取消订阅远端视频辅流
配置步骤
- 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 - 调用 unsubscribeRemoteSubVideoStream 方法取消订阅远端视频辅流。调用此方法时,您需要将
userUuid
设置为指定订阅的用户 ID。
示例代码
std::string userUuid = "123";
auto context = m_pRoomKit->getRoomService()->getRoomContext(roomUuid);
if(context){
context->getRtcController()->unsubscribeRemoteSubVideoStream(userUuid);
}
退出音视频房间
配置步骤
- 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 - 调用 leaveRtcChannel 方法退出音视频房间。
示例代码
auto context = m_pRoomKit->getRoomService()->getRoomContext(roomUuid);
if(context){
context->getRtcController()->leaveRtcChannel();
}
API 参考
方法 | 功能描述 |
---|---|
joinRoom | 加入 NERoom 的房间。 |
getRoomContext | 获取房间上下文。 |
joinRtcChannel | 加入音视频房间。 |
setupLocalVideoCanvas | 设置本端画布。 |
setupRemoteVideoCanvas | 设置远端画布。 |
setupRemoteSubVideoCanvas | 设置远端辅流画布。 |
subscribeRemoteVideoStream | 订阅远端视频主流。 |
unsubscribeRemoteVideoStream | 取消订阅远端视频主流。 |
subscribeRemoteSubVideoStream | 订阅远端视频辅流。 |
unsubscribeRemoteSubVideoStream | 取消订阅远端视频辅流。 |
leaveRtcChannel | 离开音视频房间。 |
此文档是否对你有帮助?