[*] 日常优化
This commit is contained in:
@@ -883,44 +883,38 @@ class Taoyao {
|
|||||||
// consumer.observer.on("score", fn(score));
|
// consumer.observer.on("score", fn(score));
|
||||||
consumer.on("score", (score) => {
|
consumer.on("score", (score) => {
|
||||||
console.debug("消费者评分", consumer.id, streamId, score);
|
console.debug("消费者评分", consumer.id, streamId, score);
|
||||||
me.push(
|
me.push(protocol.buildMessage("media::consumer::score", {
|
||||||
protocol.buildMessage("media::consumer::score", {
|
score,
|
||||||
roomId : roomId,
|
roomId,
|
||||||
consumerId: consumer.id,
|
consumerId: consumer.id,
|
||||||
score : score,
|
}));
|
||||||
})
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
// consumer.observer.on("layerschange", fn(layers));
|
// consumer.observer.on("layerschange", fn(layers));
|
||||||
consumer.on("layerschange", (layers) => {
|
consumer.on("layerschange", (layers) => {
|
||||||
console.debug("消费者空间层和时间层改变", consumer.id, streamId, layers);
|
console.debug("消费者空间层和时间层改变", consumer.id, streamId, layers);
|
||||||
me.push(
|
me.push(protocol.buildMessage("media::consumer::layers::change", {
|
||||||
protocol.buildMessage("media::consumer::layers::change", {
|
roomId,
|
||||||
roomId : roomId,
|
consumerId : consumer.id,
|
||||||
consumerId : consumer.id,
|
spatialLayer : layers ? layers.spatialLayer : null,
|
||||||
spatialLayer : layers ? layers.spatialLayer : null,
|
temporalLayer: layers ? layers.temporalLayer : null,
|
||||||
temporalLayer: layers ? layers.temporalLayer : null,
|
}));
|
||||||
})
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
consumer.observer.on("close", () => {
|
consumer.observer.on("close", () => {
|
||||||
if(room.consumers.delete(consumer.id)) {
|
if(room.consumers.delete(consumer.id)) {
|
||||||
console.info("消费者关闭", consumer.id, streamId);
|
console.info("消费者关闭", consumer.id, streamId);
|
||||||
me.push(
|
me.push(protocol.buildMessage("media::consumer::close", {
|
||||||
protocol.buildMessage("media::consumer::close", {
|
roomId,
|
||||||
roomId : roomId,
|
consumerId: consumer.id
|
||||||
consumerId: consumer.id
|
}));
|
||||||
})
|
|
||||||
);
|
|
||||||
} else {
|
} else {
|
||||||
console.debug("消费者关闭(无效)", consumer.id, streamId);
|
console.debug("消费者关闭(消费者无效)", consumer.id, streamId);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
consumer.observer.on("pause", () => {
|
consumer.observer.on("pause", () => {
|
||||||
console.debug("消费者暂停", consumer.id, streamId);
|
console.debug("消费者暂停", consumer.id, streamId);
|
||||||
me.push(
|
me.push(
|
||||||
protocol.buildMessage("media::consumer::pause", {
|
protocol.buildMessage("media::consumer::pause", {
|
||||||
roomId : roomId,
|
roomId,
|
||||||
consumerId: consumer.id
|
consumerId: consumer.id
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
@@ -929,7 +923,7 @@ class Taoyao {
|
|||||||
console.debug("消费者恢复", consumer.id, streamId);
|
console.debug("消费者恢复", consumer.id, streamId);
|
||||||
me.push(
|
me.push(
|
||||||
protocol.buildMessage("media::consumer::resume", {
|
protocol.buildMessage("media::consumer::resume", {
|
||||||
roomId : roomId,
|
roomId,
|
||||||
consumerId: consumer.id
|
consumerId: consumer.id
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
@@ -940,21 +934,19 @@ class Taoyao {
|
|||||||
// console.info("消费者跟踪事件(trace)", consumer.id, streamId, trace);
|
// console.info("消费者跟踪事件(trace)", consumer.id, streamId, trace);
|
||||||
// });
|
// });
|
||||||
// 等待终端准备就绪:可以不用等待直接使用push方法
|
// 等待终端准备就绪:可以不用等待直接使用push方法
|
||||||
await me.request(
|
await me.request(protocol.buildMessage("media::consume", {
|
||||||
protocol.buildMessage("media::consume", {
|
roomId,
|
||||||
roomId : roomId,
|
clientId,
|
||||||
clientId : clientId,
|
sourceId,
|
||||||
sourceId : sourceId,
|
streamId,
|
||||||
streamId : streamId,
|
producerId,
|
||||||
producerId : producerId,
|
consumerId : consumer.id,
|
||||||
consumerId : consumer.id,
|
kind : consumer.kind,
|
||||||
kind : consumer.kind,
|
type : consumer.type,
|
||||||
type : consumer.type,
|
appData : producer.appData,
|
||||||
appData : producer.appData,
|
rtpParameters : consumer.rtpParameters,
|
||||||
rtpParameters : consumer.rtpParameters,
|
producerPaused: consumer.producerPaused,
|
||||||
producerPaused: consumer.producerPaused,
|
}));
|
||||||
})
|
|
||||||
);
|
|
||||||
await consumer.resume();
|
await consumer.resume();
|
||||||
consumer.localPaused = false;
|
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",
|
"consumerId": "消费者ID",
|
||||||
"priority" : 优先级(1~255)
|
"priority" : 优先级(1~255)
|
||||||
}
|
}
|
||||||
"""
|
""",
|
||||||
|
flow = "终端->信令服务->媒体服务"
|
||||||
)
|
)
|
||||||
public class MediaConsumerSetPriorityProtocol extends ProtocolRoomAdapter {
|
public class MediaConsumerSetPriorityProtocol extends ProtocolRoomAdapter {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user