# 四分屏录制
# 简介
为了更好的了解业务全过程,菊风 Juphoon 提供四分屏录制方案。可同时将坐席和访客的视频画面,以及坐席和访客双方的屏幕画面同时录制下来。
- 服务器录制为四分屏又称为双房间模式,即两方屏幕共享,两方视频画面。
- 支持通过双通话房间模式将正在通话的双方摄像头及双方的屏幕(屏幕共享)画面进行合成录制。
# 1. 前提条件
在集成四分屏录制功能前,确保已初始化 JRTCRoom 模块,已开启房间远程录制。
# 2. 终端集成
双房间模式目前主要是为了服务器录制为四分屏,即两方屏幕共享,两方视频画面。 一般第二个房间不开启音视频流上传。
创建双房间示例代码如下:
JRTCRoom firstRoom = JRTCRoom.create(client, JCManager.getInstance().mediaDevice, this);
JRTCRoom secondRoom = JRTCRoom.create(client, JCManager.getInstance().mediaDevice, this);
private String mFirstDeliveryUserUri;
public void onJoin(boolean result, @ReasonCode int reason, String roomId, JRTCRoom room) {
if (room == firstRoom) {
//处理第一个房间
} else if (room == secondRoom) {
//处理第二个房间
}
}
//开启远程录制
private void startRemoteRecord() {
if (firstRoom.getRemoteRecordState() == RECORD_STATE_NONE) {
//"cd未加入,当前不允许录制
} else if (firstRoom.getRemoteRecordState() == RECORD_STATE_READY) {
JRTCRecordRemoteParam p = new JRTCRecordRemoteParam();
JRTCRecordRemoteParam p = new JRTCRecordRemoteParam();
p.setFrameRate(30);
p.setIBitrate(50);
List<JRTCRecordRemoteParam.RecordLayout> layoutList = new ArrayList<>();
int windows = 0; // windows表示屏幕的位置
for (int i = 0; i < firstRoom.getParticipants().size(); i++) {
JRTCRecordRemoteParam.RecordLayout layout = new JRTCRecordRemoteParam.RecordLayout();
layout.setId(firstRoom.getParticipants().get(i).getUserId(), true);
layout.setPosition(windows);
layoutList.add(layout);
windows++;
}
// 第一个会议屏幕共享的位置
if (!TextUtils.isEmpty(firstRoom.getShareStreamId())) {
JRTCRecordRemoteParam.RecordLayout layout = new JRTCRecordRemoteParam.RecordLayout();
layout.setId(firstRoom.getCallId(), false);
layout.setPosition(windows);
layoutList.add(layout);
windows++;
}
// 第二个屏幕共享的位置
if (!TextUtils.isEmpty(mSecondRoom.getShareStreamId())) {
JRTCRecordRemoteParam.RecordLayout layout = new JRTCRecordRemoteParam.RecordLayout();
layout.setId(secondRoom.getCallId(), false);
layout.setPosition(windows);
layoutList.add(layout);
windows++;
}
p.setLayoutList(layoutList);
p.setWatermarkTextMap(map);
//开启服务器录制
room.enableRemoteRecord(true, p);
}
}