[*] 日常优化
This commit is contained in:
@@ -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,
|
||||
me.push(protocol.buildMessage("media::consumer::score", {
|
||||
score,
|
||||
roomId,
|
||||
consumerId: consumer.id,
|
||||
score : score,
|
||||
})
|
||||
);
|
||||
}));
|
||||
});
|
||||
// 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,
|
||||
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,
|
||||
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,
|
||||
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;
|
||||
})()
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改最佳空间层和时间层信令
|
||||
*
|
||||
|
||||
@@ -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<String, Object> body) {
|
||||
if(clientType.isMedia()) {
|
||||
room.broadcast(message);
|
||||
} else {
|
||||
this.logNoAdapter(clientType);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -24,7 +24,8 @@ import com.acgist.taoyao.signal.protocol.ProtocolRoomAdapter;
|
||||
"consumerId": "消费者ID",
|
||||
"priority" : 优先级(1~255)
|
||||
}
|
||||
"""
|
||||
""",
|
||||
flow = "终端->信令服务->媒体服务"
|
||||
)
|
||||
public class MediaConsumerSetPriorityProtocol extends ProtocolRoomAdapter {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user