开启和关闭视频
更新时间: 2022/10/31 07:24:28
本文介绍如何通过 NERoom SDK 开启或关闭视频,包括本人的视频或房间内其他成员的视频。
注意事项
您需要先调用 setupLocalVideoCanvas
方法开启本地视图后才能发布视频流。
开启本地视频
配置步骤
-
调用
getRoomContext
方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 -
调用
setupLocalVideoCanvas
方法设置本地画布。 -
调用
unmuteMyVideo
方法开启本地视频采集并发布视频流。
示例代码
NERoomVideoView videoView=findViewById(R.id.videoView);
NERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
NERoomContext roomContext = roomService.getRoomContext(roomUuid);
if (roomContext != null) {
roomContext.getRtcController().unmuteMyVideo(new NECallback2<Unit>() {
@Override
public void onSuccess(@Nullable Unit unit) {
super.onSuccess(unit);
roomContext.getRtcController().setupLocalVideoCanvas(videoView, new NECallback2<Unit>() {
@Override
public void onSuccess(@Nullable Unit unit) {
super.onSuccess(unit);
}
@Override
public void onError(int code, @Nullable String message) {
super.onError(code, message);
}
});
}
@Override
public void onError(int code, @Nullable String message) {
super.onError(code, message);
Log.d(TAG,"error");
}
});
}
关闭本地视频
配置步骤
-
调用 getRoomContext 方法获取房间上下文。
调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 -
调用
setupLocalVideoCanvas
方法取消设置本地画布。调用此方法时,您需要传入参数 null。 -
调用
muteMyVideo
方法关闭本地视频采集。
示例代码
NERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
NERoomContext roomContext = roomService.getRoomContext(roomUuid);
if (roomContext != null) {
roomContext.getRtcController().muteMyVideo(new NECallback2<Unit>() {
@Override
public void onSuccess(@Nullable Unit unit) {
super.onSuccess(unit);
roomContext.getRtcController().setupLocalVideoCanvas(null, new NECallback2<Unit>() {
@Override
public void onSuccess(@Nullable Unit unit) {
super.onSuccess(unit);
}
@Override
public void onError(int code, @Nullable String message) {
super.onError(code, message);
}
});
}
@Override
public void onError(int code, @Nullable String message) {
super.onError(code, message);
Log.d(TAG,"error");
}
});
}
关闭房间内其他成员的视频
注意事项
您可以在云信控制台上配置某角色是否具备关闭房间内其他成员的视频的权限,只有具备该权限的角色才可以执行此操作。
配置步骤
-
加入房间后,调用
getRoomContext
方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 -
调用
muteMemberVideo
方法,传入对应成员uuid,关闭房间中某个成员的视频。
示例代码
NERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
NERoomContext roomContext = roomService.getRoomContext(roomUuid);
if (roomContext != null) {
String userUuid = "uuid";
roomContext.getRtcController().muteMemberVideo(userUuid, new NECallback2<Unit>() {
@Override
public void onSuccess(@Nullable Unit unit) {
super.onSuccess(unit);
Log.d(TAG,"success");
}
@Override
public void onError(int code, @Nullable String message) {
super.onError(code, message);
Log.d(TAG,"error");
}
});
}
打开房间内其他成员的视频
注意事项
您可以在云信控制台上配置某角色是否具备打开房间内其他成员的视频的权限,只有具备该权限的角色才可以执行此操作。
配置步骤
-
加入房间后,调用
getRoomContext
方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 -
调用
setupRemoteVideoCanvas
方法设置远端成员画布。 -
调用
unmuteMemberVideo
方法,传入对应成员uuid,打开房间中某个成员的视频。
示例代码
NERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
NERoomContext roomContext = roomService.getRoomContext(roomUuid);
if (roomContext != null) {
String userUuid = "uuid";
roomContext.getRtcController().unmuteMemberVideo(userUuid, new NECallback2<Unit>() {
@Override
public void onSuccess(@Nullable Unit unit) {
super.onSuccess(unit);
Log.d(TAG,"success");
}
@Override
public void onError(int code, @Nullable String message) {
super.onError(code, message);
Log.d(TAG,"error");
}
});
}
API 参考
方法 | 功能描述 |
---|---|
joinRoom | 加入 NERoom 的房间。 |
getRoomContext | 获取房间上下文。 |
setupLocalVideoCanvas | 设置本地视图。 |
muteMyVideo | 关闭本地视频。 |
unmuteMyVideo | 打开本地视频。 |
muteMemberVideo | 关闭房间内某个成员的视频。 |
unmuteMemberVideo | 打开房间内某个成员的视频。 |
setupRemoteVideoCanvas | 设置远端成员画布。 |