From c12b1d6f7b2d8d9defb5decb7042f04f258fe67e Mon Sep 17 00:00:00 2001 From: acgist <289547414@qq.com> Date: Thu, 8 Jun 2023 17:15:37 +0800 Subject: [PATCH] =?UTF-8?q?[*]=20=E6=9C=8D=E5=8A=A1=E7=AB=AF=E5=BD=95?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../acgist/taoyao/boot/config/Constant.java | 32 +++++++++++++++++++ .../control/ControlServerRecordProtocol.java | 28 +++++++++------- 2 files changed, 48 insertions(+), 12 deletions(-) diff --git a/taoyao-signal-server/taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/Constant.java b/taoyao-signal-server/taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/Constant.java index 9c79b6d..00c6438 100644 --- a/taoyao-signal-server/taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/Constant.java +++ b/taoyao-signal-server/taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/Constant.java @@ -277,6 +277,38 @@ public interface Constant { * 视频控制端口 */ String VIDEO_RTCP_PORT = "videoRtcpPort"; + /** + * 音频媒体流ID + */ + String AUDIO_STREAM_ID = "audioStreamId"; + /** + * 视频媒体流ID + */ + String VIDEO_STREAM_ID = "videoStreamId"; + /** + * 音频消费者ID + */ + String AUDIO_CONSUMER_ID = "audioConsumerId"; + /** + * 视频消费者ID + */ + String VIDEO_CONSUMER_ID = "videoConsumerId"; + /** + * 音频生产者ID + */ + String AUDIO_PRODUCER_ID = "audioProducerId"; + /** + * 视频生产者ID + */ + String VIDEO_PRODUCER_ID = "videoProducerId"; + /** + * 音频通道ID + */ + String AUDIO_TRANSPORT_ID = "audioTransportId"; + /** + * 视频通道ID + */ + String VIDEO_TRANSPORT_ID = "videoTransportId"; /** * 生产者ID生成器 diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlServerRecordProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlServerRecordProtocol.java index 6013ea2..b8c8b99 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlServerRecordProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlServerRecordProtocol.java @@ -138,20 +138,24 @@ public class ControlServerRecordProtocol extends ProtocolControlAdapter implemen clientWrapper.getProducers().values().forEach(producer -> { if(producer.getKind() == Kind.AUDIO) { recorder.setAudioStreamId(Constant.STREAM_ID_CONSUMER.apply(producer.getStreamId(), clientWrapper.getClientId())); - body.put("audioStreamId", recorder.getAudioStreamId()); - body.put("audioProducerId", producer.getProducerId()); + body.put(Constant.AUDIO_STREAM_ID, recorder.getAudioStreamId()); + body.put(Constant.AUDIO_PRODUCER_ID, producer.getProducerId()); } else if(producer.getKind() == Kind.VIDEO) { recorder.setAudioStreamId(Constant.STREAM_ID_CONSUMER.apply(producer.getStreamId(), clientWrapper.getClientId())); - body.put("videoStreamId", recorder.getVideoStreamId()); - body.put("videoProducerId", producer.getProducerId()); + body.put(Constant.VIDEO_STREAM_ID, recorder.getVideoStreamId()); + body.put(Constant.VIDEO_PRODUCER_ID, producer.getProducerId()); } else { // 忽略 } }); message.setBody(body); final Client mediaClient = room.getMediaClient(); - mediaClient.request(message); - // TODO:回写ID,格式自动判断 + final Message response = mediaClient.request(message); + final Map responseBody = response.body(); + recorder.setAudioConsumerId(responseBody.get(Constant.AUDIO_CONSUMER_ID)); + recorder.setVideoConsumerId(responseBody.get(Constant.VIDEO_CONSUMER_ID)); + recorder.setAudioTransportId(responseBody.get(Constant.AUDIO_TRANSPORT_ID)); + recorder.setVideoTransportId(responseBody.get(Constant.VIDEO_TRANSPORT_ID)); return recorder.getFilepath(); } @@ -177,12 +181,12 @@ public class ControlServerRecordProtocol extends ProtocolControlAdapter implemen // 关闭媒体录制 final Message message = this.build(); final Map body = new HashMap<>(); - body.put("audioStreamId", recorder.getAudioStreamId()); - body.put("videoStreamId", recorder.getVideoStreamId()); - body.put("audioConsumerId", recorder.getAudioConsumerId()); - body.put("videoConsumerId", recorder.getVideoConsumerId()); - body.put("audioTransportId", recorder.getAudioTransportId()); - body.put("videoTransportId", recorder.getVideoConsumerId()); + body.put(Constant.AUDIO_STREAM_ID, recorder.getAudioStreamId()); + body.put(Constant.VIDEO_STREAM_ID, recorder.getVideoStreamId()); + body.put(Constant.AUDIO_CONSUMER_ID, recorder.getAudioConsumerId()); + body.put(Constant.VIDEO_CONSUMER_ID, recorder.getVideoConsumerId()); + body.put(Constant.AUDIO_TRANSPORT_ID, recorder.getAudioTransportId()); + body.put(Constant.VIDEO_TRANSPORT_ID, recorder.getVideoConsumerId()); body.put(Constant.ROOM_ID, room.getRoomId()); body.put(Constant.ENABLED, false); message.setBody(body);