diff --git a/taoyao-client-media/src/Taoyao.js b/taoyao-client-media/src/Taoyao.js index 662d31d..2a793ba 100644 --- a/taoyao-client-media/src/Taoyao.js +++ b/taoyao-client-media/src/Taoyao.js @@ -883,44 +883,38 @@ class Taoyao { // consumer.observer.on("score", fn(score)); consumer.on("score", (score) => { console.debug("消费者评分", consumer.id, streamId, score); - me.push( - protocol.buildMessage("media::consumer::score", { - roomId : roomId, - consumerId: consumer.id, - score : score, - }) - ); + me.push(protocol.buildMessage("media::consumer::score", { + score, + roomId, + consumerId: consumer.id, + })); }); // consumer.observer.on("layerschange", fn(layers)); consumer.on("layerschange", (layers) => { console.debug("消费者空间层和时间层改变", consumer.id, streamId, layers); - me.push( - protocol.buildMessage("media::consumer::layers::change", { - roomId : roomId, - consumerId : consumer.id, - spatialLayer : layers ? layers.spatialLayer : null, - temporalLayer: layers ? layers.temporalLayer : null, - }) - ); + me.push(protocol.buildMessage("media::consumer::layers::change", { + roomId, + consumerId : consumer.id, + spatialLayer : layers ? layers.spatialLayer : null, + temporalLayer: layers ? layers.temporalLayer : null, + })); }); consumer.observer.on("close", () => { if(room.consumers.delete(consumer.id)) { console.info("消费者关闭", consumer.id, streamId); - me.push( - protocol.buildMessage("media::consumer::close", { - roomId : roomId, - consumerId: consumer.id - }) - ); + me.push(protocol.buildMessage("media::consumer::close", { + roomId, + consumerId: consumer.id + })); } else { - console.debug("消费者关闭(无效)", consumer.id, streamId); + console.debug("消费者关闭(消费者无效)", consumer.id, streamId); } }); consumer.observer.on("pause", () => { console.debug("消费者暂停", consumer.id, streamId); me.push( protocol.buildMessage("media::consumer::pause", { - roomId : roomId, + roomId, consumerId: consumer.id }) ); @@ -929,7 +923,7 @@ class Taoyao { console.debug("消费者恢复", consumer.id, streamId); me.push( protocol.buildMessage("media::consumer::resume", { - roomId : roomId, + roomId, consumerId: consumer.id }) ); @@ -940,21 +934,19 @@ class Taoyao { // console.info("消费者跟踪事件(trace)", consumer.id, streamId, trace); // }); // 等待终端准备就绪:可以不用等待直接使用push方法 - await me.request( - protocol.buildMessage("media::consume", { - roomId : roomId, - clientId : clientId, - sourceId : sourceId, - streamId : streamId, - producerId : producerId, - consumerId : consumer.id, - kind : consumer.kind, - type : consumer.type, - appData : producer.appData, - rtpParameters : consumer.rtpParameters, - producerPaused: consumer.producerPaused, - }) - ); + await me.request(protocol.buildMessage("media::consume", { + roomId, + clientId, + sourceId, + streamId, + producerId, + consumerId : consumer.id, + kind : consumer.kind, + type : consumer.type, + appData : producer.appData, + rtpParameters : consumer.rtpParameters, + producerPaused: consumer.producerPaused, + })); await consumer.resume(); consumer.localPaused = false; })() diff --git a/taoyao-client-web/src/components/Taoyao.js b/taoyao-client-web/src/components/Taoyao.js index db4c37f..6ba68a8 100644 --- a/taoyao-client-web/src/components/Taoyao.js +++ b/taoyao-client-web/src/components/Taoyao.js @@ -1642,15 +1642,6 @@ class Taoyao extends RemoteClient { } } - /** - * 媒体消费者评分信令 - * - * @param {*} message 信令消息 - */ - defaultMediaConsumerScore(message) { - console.debug("消费者评分", message); - } - /** * 消费媒体信令 * @@ -1757,6 +1748,15 @@ class Taoyao extends RemoteClient { } } + /** + * 媒体消费者评分信令 + * + * @param {*} message 信令消息 + */ + defaultMediaConsumerScore(message) { + console.debug("消费者评分", message); + } + /** * 修改最佳空间层和时间层信令 * diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaConsumerLayersChangeProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaConsumerLayersChangeProtocol.java new file mode 100644 index 0000000..53a34f4 --- /dev/null +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaConsumerLayersChangeProtocol.java @@ -0,0 +1,47 @@ +package com.acgist.taoyao.signal.protocol.media; + +import java.util.Map; + +import com.acgist.taoyao.boot.annotation.Description; +import com.acgist.taoyao.boot.annotation.Protocol; +import com.acgist.taoyao.boot.model.Message; +import com.acgist.taoyao.signal.client.Client; +import com.acgist.taoyao.signal.client.ClientType; +import com.acgist.taoyao.signal.party.room.Room; +import com.acgist.taoyao.signal.protocol.ProtocolRoomAdapter; + +/** + * 消费者空间层和时间层改变信令 + * + * @author acgist + */ +@Protocol +@Description( + body = """ + { + "roomId" : "房间ID" + "consumerId" : "消费者ID", + "spatialLayer" : 最佳空间层, + "temporalLayer": 最佳时间层 + } + """, + flow = "媒体服务->信令服务+)终端" +) +public class MediaConsumerLayersChangeProtocol extends ProtocolRoomAdapter { + + public static final String SIGNAL = "media::consumer::layers::change"; + + protected MediaConsumerLayersChangeProtocol() { + super("消费者空间层和时间层改变信令", SIGNAL); + } + + @Override + public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map body) { + if(clientType.isMedia()) { + room.broadcast(message); + } else { + this.logNoAdapter(clientType); + } + } + +} diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaConsumerSetPriorityProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaConsumerSetPriorityProtocol.java index 293d696..034bbc0 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaConsumerSetPriorityProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaConsumerSetPriorityProtocol.java @@ -24,7 +24,8 @@ import com.acgist.taoyao.signal.protocol.ProtocolRoomAdapter; "consumerId": "消费者ID", "priority" : 优先级(1~255) } - """ + """, + flow = "终端->信令服务->媒体服务" ) public class MediaConsumerSetPriorityProtocol extends ProtocolRoomAdapter {